servlet控制页面跳转的两个方式为:
1.请求转发方式
使用语句 request.getRequestDispatcher("../success.jsp").forward(request, response);
2.重定向方式
使用语句:response.sendRedirect("../success.jsp");
示例:
实现表单提交的jsp:
index.jsp(表单部分):
这里是用一个form表单实现两个submit按钮,即Register和Login,提交到同一个servlet中,两个按钮有相同的name属性和不同的value属性,以便在servlet中判断点的是哪个按钮
<form name="register" action="servlet/LoginServlet" method="post">
<input type="text" name="username">
<p><h4>${judge1}</h4></p>
<input type="text" name="password">
<p><h4>${judge2}</h4></p>
<input type="submit" value="Register" name="submit">
<input type="submit" value="Login" name="submit">
</form>
LoginServlet:
//用于验证用户名和密码,实现登录和注册
package com.iweb01.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.iweb01.bean.UserBean;
import com.iweb01.dao.IUserDao;
import com.iweb01.dao.UserDaoImpl;
public class LoginServlet extends HttpServlet {
public void login(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
String username = request.getParameter("username");
String password = request.getParameter("password");
IUserDao iUserDao = new UserDaoImpl();
UserBean userBean = new UserBean(username,password);
if (!iUserDao.existUser(username)) {
request.getSession().setAttribute("judge1", "用户名不存在!");
response.sendRedirect("../index.jsp");
return ;
}
else {
request.getSession().setAttribute("judge1", "");
}
if (!iUserDao.matchUser(userBean)) {
request.getSession().setAttribute("judge2", "密码错误!");
response.sendRedirect("../index.jsp");
return ;
}
else {
request.getSession().setAttribute("judge2","");
}
request.getSession().setAttribute("judge5", username);
response.sendRedirect("../success1.jsp");
}
public void register (HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if ((username == null) || (username.equals(""))){
request.getSession().setAttribute("judge1", "用户名不能为空!");
response.sendRedirect("../index.jsp");
return ;
}
else {
request.getSession().setAttribute("judge1", "");
}
if ((password == null) || (password.equals(""))) {
request.getSession().setAttribute("judge2", "密码不能为空!");
response.sendRedirect("../index.jsp");
return ;
}
else {
request.getSession().setAttribute("judge2", "");
}
UserBean userBean = new UserBean(username, password);
IUserDao iUserDao = new UserDaoImpl();
iUserDao.addUser(userBean);
//请求转发方式实现页面跳转
//request.getRequestDispatcher("../success.jsp").forward(request, response);
//重定向方式实现页面跳转
response.sendRedirect("../success.jsp");
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String choice = request.getParameter("submit");
if (choice.equals("Register")) {
register(request, response); //如果jsp上点击的是表单上的Register,则转入servlet中的register函数进行处理
}
else {
login(request, response); //如果jsp上点击的是表单上的Login,则转入servlet中的login函数进行处理
}
}
}