JSP学习笔记(四)

MVC设计模式:
M:Model,模型:一个功能。用JavaBean实现
V:View,视图:用于展示、以及与用户交互。使用html js css jsp等前端技术实现
C:Controller,控制器:接受请求,将请求跳转到模型进行处理:模型处理完毕后,再将处理的结果返回给请求处。可以用jsp实现。但一般推荐使用Servlet实现控制器。

Jsp -> Java(Servlet) -> Jsp

Servlet:
Java类必须符合一定的规范:
a.必须继承javax.servlet.HttpServlet
b.重写其中的doGet()或doPost()方法

doGet():接受并处理所有get提交方式的请求;
doPost():接受并处理所有post提交方式的请求;

Servlet要想使用,4必须配置
Servlet2.5:web.xml:
项目的根目录:WebContent、src
<a href=”WelcomeServlet”>所在的jsp是在WebContent目录中,因此发出的请求WelcomeServlet是去请求项目根目录。用/表示
Servlet流程:
请求 -> -> 根据中的 去匹配
中的,然后寻找到最终将请求交由该执行

Servlet3.0:与Servlet2.5的区别:
Servlet3.0不需要再web.xml中配置,但需要在Servlet类的定义上添加注解
@WebServlet(“url-pattern”)
匹配流程:请求地址与@WebServlet中的值进行匹配,如果匹配成功,则说明请求的就是该注解所对应的类

项目根目录:WebContent、src(所有的构建路径)
例如:
WebContent中有一个文件index.jsp
src中有一个Servlet.java
如果:index.jsp中请求,则寻找范围:既会在src根目录中找,也会在WebContent根目录中找;
如果:index.jsp中请求,则寻找范围:现在src或WebContent中找a目录,然后再在a目录中找abc;
【/】到底如何理解:
web.xml中的或者注解里的【/】:代表项目根路径
例子:http://localhost:8888/Servlet25Project/
jsp中的【/】:服务器根路径
例子:http://localhost:8888/
构建路径(默认src可自建)、WebContent都属于根目录;

Servlet生命周期:5个阶段
加载
初始化 init(),该方法会在Servlet被加载并实例化的以后执行;
服务:service()抽象方法不用管 -> 重写doGet() doPost()方法;
销毁:destroy(),Servlet被系统回收时执行;
卸载

init():
a.默认第一次访问Servlet时会被执行(只执行这一次)
b.可以修改为Tomcat启动时自动执行
i.Servlet2.5:web.xml

<servlet>......<load-on-startup>1</load-on-startup><servlet>

其中的【1】代表第一个(大白话:执行顺序)
ii.Servlet3.0:注解

@WebServlet(value=/WebcomeServlet”,loadOnStartup=1)

service()->doGet()、doPost():调用几次,则执行几次;
destroy():关闭tomcat服务时,执行一次;

Servlet API:
由两个软件包组成:
a.对应于HTTP协议的软件包
b.对应于除了HTTP协议以外的其他软件包
即Servlet API可以适用于任何通信协议。
我们学习的Servlet,是位于javax.servlet.http包中的类和接口,是基于HTTP协议

Servlet继承关系:
ServletConfig:接口
ServletContext getServletContext():获取Servlet上下文对象 application
String getInitParamter(String name):在当前Servlet范围内,获取名为name的参数值
(初始化参数)

a.ServletContext中的常见方法(application):
getContextPath():相对路径
getRealPath():绝对路径
setAttribute()、getAttribute()
---->
String getInitParameter(String name);在当前Web容器范围内,获取名为name的参数值
(初始化参数)

Servlet3.0方式给当前Servlet设置初始值:
@WebServlet(…,initParams=”{@WebInitParam(name=””,value=””)}”)
注意,此注解只隶属于某一个具体的Servlet,因此无法为整个web容器设置初始化参数
HttpServletRequest中的方法:(同request),例如setAttribute()、getCookies()、getMethod()
HttpServletResponse中的方法:同response

Servlet使用层面:
Eclipse中在src创建一个Servlet,然后重写doGet() doPost()就可以。
(doGet、doPost只需要编写一个)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘二壮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值