MVC设计模式
1.mvc
M:model,模型,一个功能
V:view,视图,用于展示、以及与用户交互,使用html、js、css、jsp、jquery等前端技术实现
C:controller,控制器:接收请求,将请求跳转到模型处理,处理完毕后,再将处理的结果返回给请求处。可以使用jsp实现,但是一般建议使用servlet实现
JSP->java(servlet)->jsp
2.servlet:
java类必须符合一定的规范:
1)必须继承 javax.servlet.http.HttpServlet
2)重写其中的doGet()或doPodt()方法
doGet():接收并处理所有的get请求
doPost():接收并处理所有的post请求
servlet使用必须配置:
servlet2.5:web.xml
servlet3.0:@WebServlet
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
servlet流程:
请求->->根据中的去匹配中的,然后寻找到,将请求交给该servlet
步骤
1)在src中新建java类,继承HttpServlet
2)重写doget和dopost方法
3)在web.xml中填写映射关系
3.servlet 3.0
servlet 3.0不需要再web.xml中进行配置,需要在servlet类中的定义之上编写注解@WebServlet(“url-pattren的值”)
匹配流程:请求地址与注释中的值进行匹配
4. 根目录
两个:WebContent、src(所有 的构建路径)
/代表:
web.xml中的/代表项目根目录:http://localhost:8080/Project
jsp中的/代表服务器根目录:http://localhost:8080/
5.servlet生命周期
5个阶段
加载
初始化:init():该方法会在servlet被加载并实例化之后执行
服务:service()
销毁:destroy():servlet被系统回收时
卸载
init():
1)默认第一次访问servlet时会被执行(只执行这一次)
2)可以修改为tomcat启动时自动执行
2.1)servlet 2.5:
<servlet>
<servlet-name>a</servlet-name>
<servlet-class>com.yhy.servlet.WelcomServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
其中“1”表示优先级
2.2)servlet 3.0
在servlet类中定义的上方添加
@WebServlet(value="/WelServlet",loadOnStartup=1)
6.servlet API
由两个软件包组成:对应于HTTP协议的软件包,对应于除了HTTP协议的软件包
1.servlet继承关系
-
servletConfig接口:
ServletContext getServletContext();获取上下文对象 application
String getInitParameter(String name);在当前servlet范围内,获取名为name的参数值(初始化参数)
-
ServletContext中的常见方法(application)
getContextPath()
getRealPath()
setAttribute()、getAttribute()
String getInitParameter(String name):在当前Web容器范围内,获取名为name的参数值(初始化参数)
-
赋值:
servlet 2.5
web.xml
...
<!-- 在整个Web容器中设置初始化参数 -->
<context-param>
<param-name>globalPara</param-name>
<param-value>global value..</param-value>
</context-param>
<servlet>
<servlet-name>a</servlet-name>
<servlet-class>com.yhy.servlet.WelcomServlet</servlet-class>
<init-param>
<param-name>servletpara</param-name>
<param-value>servlet para..</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>a</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
</web-app>
servlet 3.0
局部参数
@WebServlet(value="/WelServlet",loadOnStartup=1,initParams={@WebInitParam(name="servletpara",value="servlet value..")})