Javaservlet切换执行顺序
我在使用servlet中的两个开关时遇到了一些问题。我试图从jsp上的这些开关加载数据,但它基本上只在第一个开关上加载,第二个开关没有执行。我尝试只创建一个开关,但它会给我一些错误,如提交响应后无法转发等。你们知道解决这个问题的正确方法吗? 谢谢 代码如下:Javaservlet切换执行顺序,java,servlets,switch-statement,Java,Servlets,Switch Statement,我在使用servlet中的两个开关时遇到了一些问题。我试图从jsp上的这些开关加载数据,但它基本上只在第一个开关上加载,第二个开关没有执行。我尝试只创建一个开关,但它会给我一些错误,如提交响应后无法转发等。你们知道解决这个问题的正确方法吗? 谢谢 代码如下: public class UserControllerServlet extends HttpServlet { private static final long serialVersionUID = 1L; priv
public class UserControllerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserDao userDao;
private ReservationDao reservationDao;
private DBConnection dbConnection;
@Override
public void init() throws ServletException {
super.init();
try {
userDao = new UserDao(dbConnection);
reservationDao = new ReservationDao(dbConnection);
}catch(Exception e) {
throw new ServletException(e);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try {
// read the "command" parameter
String theCommand = request.getParameter("command");
String theCommand2 = request.getParameter("command2");
if(theCommand == null) {
theCommand = "LIST";
}
if(theCommand2 == null) {
theCommand2 = "LIST";
}
switch(theCommand2) {
case "LIST":
listReservations(request, response);
return;
case "ADD":
addReservation(request, response);
return;
case "LOAD":
loadReservation(request, response);
return;
case "UPDATE":
updateReservation(request, response);
return;
case "DELETE":
deleteReservation(request, response);
return;
default:
listReservations(request, response);
}
//route to the appropriate method
switch(theCommand) {
case "LIST":
listUsers(request, response);
break;
case "ADD":
addUser(request, response);
break;
case "LOAD":
loadUser(request, response);
break;
case "UPDATE":
updateUser(request, response);
break;
case "DELETE":
deleteUser(request, response);
break;
default:
listUsers(request, response);
}
}catch(Exception e) {
throw new ServletException(e);
}
}
private void deleteUser(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String theUserId = request.getParameter("userId");
userDao.deleteUser(theUserId);
listUsers(request, response);
}
private void updateUser(HttpServletRequest request, HttpServletResponse response)
throws Exception {
int id = Integer.parseInt(request.getParameter("userId"));
String username = request.getParameter("username");
String password = request.getParameter("password");
String role = request.getParameter("role");
String nume = request.getParameter("nume");
String prenume = request.getParameter("prenume");
String email = request.getParameter("email");
String adresa = request.getParameter("adresa");
UserBean theUser = new UserBean(id, username, password, role,nume,prenume,email,adresa);
userDao.updateUser(theUser);
listUsers(request, response);
}
private void loadUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
String theUserId = request.getParameter("userId");
UserBean theUser = userDao.getUser(theUserId);
request.setAttribute("THE_USER", theUser);
RequestDispatcher dispatcher =
request.getRequestDispatcher("/update-user-form.jsp");
dispatcher.forward(request, response);
return;
}
private void addUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
String username = request.getParameter("username");
String password = request.getParameter("password");
String role = request.getParameter("role");
String nume = request.getParameter("nume");
String prenume = request.getParameter("prenume");
String email = request.getParameter("email");
String adresa = request.getParameter("adresa");
UserBean theUser = new UserBean(username, password, role,nume,prenume,email,adresa);
userDao.addUser(theUser);
listUsers(request, response);
}
private void listUsers(HttpServletRequest request, HttpServletResponse response)
throws Exception {
List<UserBean> users = userDao.getUsers();
request.setAttribute("USER_LIST", users);
RequestDispatcher dispatcher = request.getRequestDispatcher("/list-users.jsp");
dispatcher.forward(request, response);
return;
}
//Reservations Methods
private void deleteReservation(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String theReservationId = request.getParameter("reservationId");
reservationDao.deleteReservation(theReservationId);
listReservations(request, response);
}
private void updateReservation(HttpServletRequest request, HttpServletResponse response)
throws Exception {
int idReservation = Integer.parseInt(request.getParameter("reservationId"));
int idUser = Integer.parseInt(request.getParameter("userId"));
String dataCheckin = request.getParameter("dataCheckin");
String dataCheckout = request.getParameter("dataCheckout");
int nrPersoane = Integer.parseInt(request.getParameter("nrPersoane"));
int nrCamere = Integer.parseInt(request.getParameter("nrCamere"));
ReservationBean theReservation = new ReservationBean(idReservation, idUser, dataCheckin, dataCheckout,nrPersoane,nrCamere);
reservationDao.updateReservation(theReservation);
listReservations(request, response);
}
private void loadReservation(HttpServletRequest request, HttpServletResponse response) throws Exception {
String theReservationId = request.getParameter("reservationId");
ReservationBean theReservation = reservationDao.getReservation(theReservationId);
request.setAttribute("THE_RESERVATION", theReservation);
RequestDispatcher dispatcher =
request.getRequestDispatcher("/update-reservation-form.jsp");
dispatcher.forward(request, response);
return;
}
private void addReservation(HttpServletRequest request, HttpServletResponse response) throws Exception {
int userId = Integer.parseInt(request.getParameter("userId"));
String dataCheckin = request.getParameter("dataCheckin");
String dataCheckout = request.getParameter("dataCheckout");
int nrPersoane = Integer.parseInt(request.getParameter("nrPersoane"));
int nrCamere = Integer.parseInt(request.getParameter("nrCamere"));
ReservationBean theReservation = new ReservationBean(userId, dataCheckin, dataCheckout,nrPersoane,nrCamere);
reservationDao.addReservation(theReservation);
listReservations(request, response);
}
private void listReservations(HttpServletRequest request, HttpServletResponse response)
throws Exception {
List<ReservationBean> reservations = reservationDao.getReservations();
request.setAttribute("RESERVATION_LIST", reservations);
request.getRequestDispatcher("/list-users.jsp").forward(request, response);
return;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
公共类UserControllerServlet扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
私有UserDao UserDao;
私人预订道预订道;
专用数据库连接数据库连接;
@凌驾
public void init()引发ServletException{
super.init();
试一试{
userDao=新的userDao(dbConnection);
reservationDao=新的reservationDao(dbConnection);
}捕获(例外e){
抛出新的ServletException(e);
}
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException
{
试一试{
//读取“command”参数
字符串theCommand=request.getParameter(“命令”);
字符串command2=request.getParameter(“command2”);
if(命令==null){
命令=“列表”;
}
if(命令2==null){
命令2=“列表”;
}
开关(命令2){
案例“列表”:
列表保留(请求、响应);
返回;
案例“添加”:
添加预订(请求、响应);
返回;
案例“荷载”:
loadReservation(请求、响应);
返回;
案例“更新”:
更新服务(请求、响应);
返回;
案例“删除”:
删除保留(请求、响应);
返回;
违约:
列表保留(请求、响应);
}
//路由到适当的方法
开关(命令){
案例“列表”:
列表用户(请求、响应);
打破
案例“添加”:
addUser(请求、响应);
打破
案例“荷载”:
loadUser(请求、响应);
打破
案例“更新”:
updateUser(请求、响应);
打破
案例“删除”:
删除用户(请求、响应);
打破
违约:
列表用户(请求、响应);
}
}捕获(例外e){
抛出新的ServletException(e);
}
}
私有void deleteUser(HttpServletRequest请求,HttpServletResponse响应)
抛出异常{
字符串theUserId=request.getParameter(“userId”);
userDao.deleteUser(userid);
列表用户(请求、响应);
}
私有void updateUser(HttpServletRequest请求,HttpServletResponse响应)
抛出异常{
intid=Integer.parseInt(request.getParameter(“userId”);
字符串username=request.getParameter(“用户名”);
字符串密码=request.getParameter(“密码”);
字符串角色=request.getParameter(“角色”);
字符串nume=request.getParameter(“nume”);
字符串prenume=request.getParameter(“prenume”);
字符串email=request.getParameter(“email”);
字符串adresa=request.getParameter(“adresa”);
UserBean theUser=newuserbean(id、用户名、密码、角色、nume、prenume、电子邮件、地址);
userDao.updateUser(用户);
列表用户(请求、响应);
}
私有void loadUser(HttpServletRequest请求、HttpServletResponse响应)引发异常{
字符串theUserId=request.getParameter(“userId”);
UserBean theUser=userDao.getUser(theUserId);
setAttribute(“用户”,theUser);
RequestDispatcher=
getRequestDispatcher(“/update user form.jsp”);
转发(请求、响应);
返回;
}
私有void addUser(HttpServletRequest请求、HttpServletResponse响应)引发异常{
字符串username=request.getParameter(“用户名”);
字符串密码=request.getParameter(“密码”);
字符串角色=request.getParameter(“角色”);
字符串nume=request.getParameter(“nume”);
字符串prenume=request.getParameter(“prenume”);
字符串email=request.getParameter(“email”);
字符串adresa=request.getParameter(“adresa”);
UserBean theUser=newuserbean(用户名、密码、角色、nume、prenume、电子邮件、地址);
userDao.addUser(theUser);
列表用户(请求、响应);
}
私有void列表用户(HttpServletRequest请求、HttpServletResponse响应)
抛出异常{
List users=userDao.getUsers();
setAttribute(“用户列表”,用户);
RequestDispatcher=request.getRequestDispatcher(“/list users.jsp”);
转发(请求、响应);
返回;
}
//保留方法
私有void deleteReservation(HttpServletRequest请求、HttpServletResponse响应)
抛出异常{
字符串theReservationId=request.getParameter(“reservationId”);
reservationDao.deleteReservation(theReservationId);
列表保留(请求、响应);
}
私有void updateReservation(HttpServletRequest请求,HttpServletResponse响应)
抛出异常{
int idReservation=Integer.parseInt(request.getParameter(“reservationId”);
switch(theCommand2) {
case "LIST":
listReservations(request, response);
break; // not return.
case "ADD":
addReservation(request, response);
break; // not return..
// ...