该功能在账号框里面输入用户名,然后把查询结果在jsp页面中显示出来,账号存储在数据库中,在servlet中查询,返回结果,这其实就是参数的传递的过程
方法一:request
request.setAttribute(“mess”, “该用户未注册”); 前面参数是key 后面是value
request.getRequestDispatcher(“findpassword.jsp”).forward(request, response); 页面跳转 findpassword.jsp 是目的页面,也就是显示value的页面
//servlet后台代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String account = getParam("username");
if(account==null) {
return ;
}
UserInfo userinfo=new UserInfo();
userinfo.setU_account(account);
UserInfoDao userdao = new UserInfoDao();
UserInfo user = userdao.getAccount(userinfo);
if(user==null) {
request.setAttribute("mess", "该用户未注册");
request.getRequestDispatcher("findpassword.jsp").forward(request, response);
}else {
request.setAttribute("mess", "匹配成功,请继续找回密码");
request.getRequestDispatcher("findpassword.jsp").forward(request, response);
}
}
方法二:把要传递的参数放进session
request.getSession().setAttribute(“mess”, “该用户未注册”); 前面参数是key 后面是value
request.getRequestDispatcher(“findpassword.jsp”).forward(request, response); 页面跳转 findpassword.jsp 是目的页面,也就是显示value的页面
//servlet后台代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String account = getParam("username");
if(account==null) {
return ;
}
UserInfo userinfo=new UserInfo();
userinfo.setU_account(account);
UserInfoDao userdao = new UserInfoDao();
UserInfo user = userdao.getAccount(userinfo);
if(user==null) {
request.getSession().setAttribute("mess", "该用户未注册");
request.getRequestDispatcher("findpassword.jsp").forward(request, response);
}else {
request.getSession().setAttribute("mess", "匹配成功,请继续找回密码");
request.getRequestDispatcher("findpassword.jsp").forward(request, response);
}
}
前端用EL表达式,或者jsp的表达式获取
//在需要显示的地方
<td> <div style="color:red; align:center;">${mess }</div> </td>
//EL表达式
<td> <div style="color:red; align:center;"><%=session.getAttribute("mess") %></div> </td>
//jsp表达式
注意:
1、如果用的是session的话,因为session的作用域是整个浏览器,所以在没有更换浏览器的情况下,session显示上一次存储的值,而request则不会
2、οnsubmit=“return checkForm()”
表单是否提交取决于onsubmit事件的返回值。
οnsubmit=”return false;” 将无论何时都阻止表单的提交
οnsubmit=”return check();” 是否提交表单取决于check()的返回值
οnsubmit=”check();” check()的返回值无影响,无论返回什么值都会提交表单.
参考:https://blog.csdn.net/u012661010/article/details/70568337
<form action="FindPasswordServlet" method="post" onsubmit="return checkForm()">
<table>
<tr>
<td>账号</td>
<td><input type="text" name="username" ></td>
</tr>
<tr>
<td><input type="submit" style="background-image: url('images/regbtn1.png'); height: 37px; width: 150px;"
value="" ></td>
<td> <div style="color:red; align:center;">${mess }</div> </td>
<td> <div style="color:red; align:center;"><%=session.getAttribute("mess") %></div> </td>
</tr>
</table>
</form>
第一次自己怼jsp代码,因为少加了一个onsubmit属性 ,怎样都显示不出来