Servlet 简介
开发动态JavaWeb工程时,用到的技术主要有两种Servlet和jsp ,开发Servlet 需要引入tomcat 下lib 包,其中有个 servlet-api.jar,开发Servlet 需要引入这个jar。开发JSP 需要引入tomcat中的 JSP-api.jar 文件。
Servlet 主要处理 http 的请求 和 响应。
创建代码 public class HelloworldServlet extends HttpServlet { } 查看 servlet-api.jar 中的HttpServlet 这个类,如下所示
public abstract class HttpServlet extends GenericServlet { private static final long serialVersionUID = 1L; private static final String METHOD_DELETE = "DELETE"; private static final String METHOD_HEAD = "HEAD"; private static final String METHOD_GET = "GET"; private static final String METHOD_OPTIONS = "OPTIONS"; private static final String METHOD_POST = "POST"; private static final String METHOD_PUT = "PUT"; private static final String METHOD_TRACE = "TRACE"; private static final String HEADER_IFMODSINCE = "If-Modified-Since"; private static final String HEADER_LASTMOD = "Last-Modified"; private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings"; private static final ResourceBundle lStrings = ResourceBundle.getBundle("javax.servlet.http.LocalStrings"); public HttpServlet() { } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String protocol = req.getProtocol(); String msg = lStrings.getString("http.method_get_not_supported"); if (protocol.endsWith("1.1")) { resp.sendError(405, msg); } else { resp.sendError(400, msg); } } protected long getLastModified(HttpServletRequest req) { return -1L; } protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if (DispatcherType.INCLUDE.equals(req.getDispatcherType())) { this.doGet(req, resp); } else { NoBodyResponse response = new NoBodyResponse(resp); this.doGet(req, response); response.setContentLength(); } } ......... } 这个类中封装了各种http协议请求,get.post.........
Servlet和JSP两者最大的区别就是,Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内嵌HTML; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码, 即HTML中内嵌Java。典型的例子如下:
JSP文件 复制代码代码如下: <html> <body> <h1> <% out.println("JSP"); %> </h1> </body> </html> Servlet 复制代码代码如下: public class MyServlet ... { ... out.println("<html>"); out.println("<body>"); out.println("<h1>"); out.println("Servlet); out.println("</h1>"); out.println("</body>"); out.println("</html>"); }
MVC简介 ----MVC 框架由底层的Servlet 发展而来
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。
所谓MVC模型就是将数据、逻辑处理、用户界面分离的一种方法。
- M(Model, 模型):用于数据处理、逻辑处理。
- V(View,视图):用于显示用户界面。
- C(Controller,控制器):根据客户端的请求控制逻辑走向和画面。
而在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet。
- M = JavaBeans:用于传递数据,拥有与数据相关的逻辑处理。
- V = JSP:从Model接收数据并生成HTML
- C = Servlet:接收HTTP请求并控制Model和View
MVC 更详细的简介 https://blog.csdn.net/qq_21225505/article/details/81666986
常见的 MVC 框架有Struts1/2,Spring MVC等,实际上都是在最底层的Servlet规范中发展而来的。而不同MVC框架其M(对应JAVA的POJO类)和V(如JSP,HTML等)一般是相同的,最主要的区别在C,它是HTTP处理请求、响应的关键。
SpringMVC和Struts 的发展历程及其之间的区别 https://www.cnblogs.com/doit8791/p/5847498.html
SpringMVC常见注解https://www.cnblogs.com/sunniest/p/4555801.html