MVC:模型(dao,service) 视图 (jsp) 控制器(Servlet)
dao(连接数据库)
service(调用dao层,执行一些业务(只关注业务))
servlet(接受前端的数据,交给service层去处理,service返回的结果由servlet去调用相应的前端页面(jsp/html))转发(url地址不会改变)和重定向(url地址会改变)
jsp/html(前端页面)
JSP:本质就是Servlet
MVC框架要做哪些事情
1.将url映射到java类或者java类的方法
2.封装用户提交的数据
3.处理请求---调用相关业务处理---封装相应数据
4.将响应的数据进行渲染,jsp/html等表现层数据
运行图
servlet运行代码
web.xml
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.kuang.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>from.jsp</welcome-file> </welcome-file-list>
Servlet.class
package com.kuang.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); // 获取前端参数 String method = req.getParameter("method"); System.out.println("method==============" +method); if(method.equals("add")){ req.getSession().setAttribute("msg","执行了add方法"); } if(method.equals("delete")){ req.getSession().setAttribute("msg","执行了delete方法"); } // 2.调用 // 视图转发和重定向 req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); } }
indexl.jsp
<form action="/hello" method="get"> <input type="text" name="method" value="add"> <input type="submit" value="提交"> </form>