Servlets 如何在与Servlet分离的类中实现MVC的业务逻辑?
我曾尝试将该类放入servlet控制器中,但在构造函数和设置方法访问方面遇到了问题。我读到它提高了业务逻辑分离的效率,我甚至尝试将其放入JavaBean中,但我还不知道如何将参数从控制器发送到它。我还有很多东西要学,只是在做一个项目。您可以在JavaEE平台中使用EJB将业务逻辑与表示层(即servlet和JSP)分离。如果您的项目没有太多的业务逻辑代码,那么只需使用JavaPOJO类即可<这个例子给出了非常原始的想法。您可以使用内置MVC设计的web框架。Servlets 如何在与Servlet分离的类中实现MVC的业务逻辑?,servlets,Servlets,我曾尝试将该类放入servlet控制器中,但在构造函数和设置方法访问方面遇到了问题。我读到它提高了业务逻辑分离的效率,我甚至尝试将其放入JavaBean中,但我还不知道如何将参数从控制器发送到它。我还有很多东西要学,只是在做一个项目。您可以在JavaEE平台中使用EJB将业务逻辑与表示层(即servlet和JSP)分离。如果您的项目没有太多的业务逻辑代码,那么只需使用JavaPOJO类即可
控制器:
使用servlet控制导航或针对HTTP
请求执行其他任务
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
LoginManager loginManager=new LoginManager();
if(loginManager.isValidUser("getUserID from request Params","password from request params")){
//initialize user session and redirect to dashboard
//response.sendRedirect("/userhome.jsp");
}else{
//display failure messages. etc...
//response.sendRedirect("/login.jsp");
}
}
}
型号
:
POJO,其中包含一组用于登录相关操作的方法
public class LoginManager {
private Connection con;
public LoginManager() {
}
private void initConnection(){
//register driver class and create a new connection
//you can create separate DBUtils class to get new connections
//to prevent boilerplate code.
//make new connection to database
// con=..
}
private void closeConnection() throws SQLException{
con.close();
}
public boolean isValidUser(String user,String password) throws SQLException{
initConnection();
PreparedStatement pstm=con.prepareStatement("select 1 from users where userID = ? and password=?");
//设置用户ID和密码参数
结果集rs=pstm.executeQuery()
查看
:
像
login.jsp
和userhome.jsp
这样的页面都是视图 我建议看一下SpringMVC。所有的管道都已经为您处理好了,您只需编写控制器方法和HTML模板。谢谢您,Chryslis。我会调查的谢谢你,阿西德,克丽利斯。我正在阅读Murach的servlet和JSP第二版。我将在阅读列表中添加一个web框架。
if (rs.next()){
if(checkpassword.....)
return true;
}
closeConnection();
return false;
}
}