什么是请求?
比如: form表单提交action请求路径。 比如: 超链接携带请求参数跳转到其他页面。
从一个地址跳转到另一个地址,再另一个地址获取请求的参数值。
<%--表单携带请求参数
action:表示表单提交的路径。
method:表示表单的提交方式。get和post
--%>
思考: 从index跳转到indexDo页面,我们如何从indexDo获取表单提交的数据呢?
request:jsp内置对象
String getParameter(name);
接受表单其他元素的参数:
<%
//request属于jsp中的内置对象,无需自己创建该对象。
String name = request.getParameter("uname");//获取请求的参数值。uname必须和表单的输入的名称一致。
String pwd = request.getParameter("pwd"); //接受到表单提交的账号和密码了。
String sex = request.getParameter("sex");
String country = request.getParameter("country");
//String hobby = request.getParameter("hobby"); //多选按钮需要获取所有被选中的值。
String[] hobbies = request.getParameterValues("hobby");
String desc = request.getParameter("desc");
out.print("账号===="+name+"
");
out.print("密码===="+pwd+"
");
out.print("性别===="+sex+"
");
out.print("国籍===="+country+"
");
out.print("爱好===="+ Arrays.toString(hobbies)+"
");
out.print("描述===="+desc+"
");
%>
注意: 如果是单选按钮和复选按钮必须设置属性value。 如果获取的是多个值,那么必须使用request.getParameterValues(""); 单个值直接使用request.getParameter("")
先把: jsp-api.jar和servlet-api.jar放入WEB-INF/lib文件夹下。
2.接受超链接提交的数据3.解决请求参数的乱码问题<%--超链接: 超链接如何传参 使用?key=value&key=value--%>
连接
接受参数的时候设置一下UTF-8的编码。
request.setCharacterEncoding("utf-8");
4.页面跳转常见的编码:
ISO-8859-1: 国际编码 但是不支持中文。
UTF-8: 万能编码支持英文中文以及繁体中文。----企业开发都是用UTF-8
GBK: 中文编码.简体中文和繁体中文.
GB2312: 中文编码 但是它支持简体中文。
response.sendRedirect("路径"); //重定向到指定的路径
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录页面
loginDo.jsp---接受请求的参数并进行相应的业务处理。跳转到相应的页面
<%
//编码的设置
request.setCharacterEncoding("utf-8");
//接受账号和密码
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
//业务处理: 判断你的账号和密码是否正确。--先固定判断 未来我们应该和数据库进行比对。
if("admin".equals(username) && "123456".equals(pwd)){
//out.print("登录成功"); //跳转到成功页面
response.sendRedirect("success.jsp");//重定向到指定页面
}else{
//out.print("登录失败"); //跳转到登录页面
response.sendRedirect("login.jsp");
}
%>
登录流程图:
5.jsp+dao整合我们上面再写登录时,账号和密码的比对都是和固定值对比,实际我们应该和数据库中的账号和密码进行对比。
(1)引入相关的依赖(必须把jar包放入WEB-INF下lib目录)
(2)编写java的dao entity
public boolean findByNameAndPassword(String name,String password){
try {
Connection connection = getConnection();
String sql = "select * from tbl_user where username=? and password=?";
ps = connection.prepareStatement(sql);
ps.setObject(1, name);
ps.setObject(2, password);
rs = ps.executeQuery();
while (rs.next()) {
return true;
}
}catch (Exception e){
e.printStackTrace();
}finally {
closeAll();
}
return false;
}
(3)调用dao层的代码
登录的流程图:
6.错误运行‘Tomcat 9.0.35‘: 地址 localhost:1099 已在使用
错误运行‘Tomcat 9.0.35‘: 地址 localhost:1099 已在使用_m0_55734518的博客-CSDN博客_localhost1099正在使用“Error running ‘Tomcat 9.0’: Address localhost:1099 is already in use”报错问题问题描述:idea运行项目时,左下方出现红色小方块提示问题“Error running ‘Tomcat 9.0’: Address localhost:1099 is already in use”。这是因为端口被占用了。解决问题:按win+R打开控制台输入cmd.确定后输入:netstat -aon|findstr 1099 命令查看什么https://blog.csdn.net/m0_55734518/article/details/122782671?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-122782671-blog-81911219.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3



