MVC设计模式:
M:Model ,模型 :一个功能。用JavaBean实现。
V:View,视图: 用于展示、以及与用户交互。使用html js css jsp jquery等前端技术实现
C:Controller,控制器 :接受请求,将请求跳转到模型进行处理;模型处理完毕后,再将处理的结果
返回给 请求处 。 可以用jsp实现, 但是一般建议使用 Servlet实现控制器。
Jsp->Java(Servlet)->JSP
Servlet:
Java类必须符合一定的 规范:
a.必须继承 javax.servlet.http.HttpServlet
b.重写其中的 doGet()或doPost()方法
doGet(): 接受 并处 所有get提交方式的请求
doPost():接受 并处 所有post提交方式的请求
案例:
Servlet要想使用,必须配置
Serlvet2.5:web.xml
Servle3.0: @WebServlet
package com.xdr.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WelcomeServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("doGet...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doGet(req, resp);
}
}
doGet和doPost两者之间可以相互调用,所以一般只在一边写即可,例外一边可以调用。
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="https://www.ctyun.cn/portal/link.html?target=WelcomeServlet">WelcomeServlet</a><br><br>
<form action="WelcomeServlet" method="post">
<input type="submit">
</form>
</body>
</html>
web.xml配置
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>com.xdr.servlet.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping>
结果:各点击下
<a href="https://www.ctyun.cn/portal/link.html?target=WelcomeServlet">
所在的jsp是在 WebContent目录中,因此 发出的请求WelcomeServlet 是去请求项目的根目录。所以<url-pattern>/项目名</url-pattern>
必须加个“/”,一般<servlet-name> </servlet-name
>写请求的名
Servlet流程:
请求 -><url-pattern>
-> 根据<servlet-mapping>
中的<servlet-name>
去匹配 <servlet>
中的<servlet-name>
,然后寻找到<servlet-class>
,求中将请求交由该<servlet-class>
执行。
2个/:
jsp:/ localhost:8080
web.xml: / http://localhost:8080/项目名/