1.Web目录结构
.idea:idea的配置文件
out:源代码编译以后的内容放在此目录下
src:源代码
web:存放关于web的相关资源
weib.xml:web项目的配置文件
External Libraries:可以看见项目的依赖
2.web.xml
<!--配置项目初始化后默认访问的页面 -->
<welcome-file-list>
<welcome-file>hello.jsp</welcome-file>
</welcome-file-list>
<servlet>
<!--给servlet起一个别名,但是下面的servlet的别名得和这儿一样-->
<servlet-name>servletDemo1</servlet-name>
<!--我们自己创建的servlet-->
<servlet-class>com.hqyj.zyh.servlet.ServletDemo1</servlet-class>
<!--当我们启动服务器的时候,初始化该servlet,可以通过该标签变相扩大servlet的生命周期-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<!--别名-->
<servlet-name>servletDemo1</servlet-name>
<!--映射的路径-->
<url-pattern>/servletDemo1</url-pattern>
</servlet-mapping>
3.Servlet
Servlet,即server applet,服务器小程序,它的本质是一个接口,定义了一套如何浏览浏览器的规则。
servlet是web三大组件之一(另外两个为过滤器和监听器)。
4.关于servlet的生命周期
init()
初始化方法,当第一次访问该servlet时可执行该初始化方法,后续不再执行。
service()
服务方法:主要用于逻辑操作,每次访问该servlet时都会执行该服务方法。
destroy()
销毁方法:当正常关闭服务器时,执行该方法。
5.注解@WebServlet
在web3.0之后出现了一个注解@WebServlet,该注解用来代替web.xml里面所有有关该servlet的配置内容。
@WebServlet的几种写法
基本写法:@WebServlet("/servlet")
父路径写法:@WebServlet("/xxx/yyy")
多路径写法:@WebServlet({"/xxx","/yyy","/zzz"})
*.do写法:@WebServlet("*.do")此处的do可以自己定义,无论前缀是什么,只要是.do结尾的都可以访问
/*写法:@WebServlet("/*")所有都可以匹配,包括.jsp结尾的,但是不能访问已经拥有的路径,优先级低于已有的路径
/写法:@WebServlet("/")所有都可以访问,但是不能匹配.jsp结尾,也不能访问已经拥有的路径,优先级低于已有的路径
6.httpServlet
httpServlet对http协议做了一些相关的实现,通过B/S构架需要去使用http协议。.http请求报文时的模仿请求方式是get。
7.get和post的区别
get表达的是最终结果想要从服务器拿到数据,所有传递给服务器的数据都是不安全的,并且只能传递2K的数据。
post表达的是最终结果想要改变服务器的某种状态,传递给服务器的数据不会放在地址栏里面。
8.request的api
| api | 作用 |
|---|---|
| request.getParameter() | 获取前端传过来的参数的值 |
| request.getHeader() | 根据请求头的名获取请求头的值 |
| request.getRequestURI() | 获取请求的URI |
| request.getRequestURL() | 获取请求的URL |
| request.getQueryString() | 获取在地址栏后拼接的内容,一般用于get请求的数据 |
| request.getRequestDispatcher() | 请求转发,获取请求转发器,参数为想要转发到的路径 |
注:.出现乱码的原因:编码和解码不一致
解决乱码:request.setCharacterEncoding(“utf-8”)
9.域对象
域对象是能够在一定的范围内共享数据,request的作用域为一次请求与一次响应之间,
每个域对象的作用域都不相同。request值是一个域对象,是所学习的四大域对象之一。

474

被折叠的 条评论
为什么被折叠?



