Web Http Servlet
web
Java Web 是用 Java 技术来解决相关 web 互联网领域的技术总和
一种是基于浏览器/服务器的 B/S 结构,另一种是基于客户端/服务器的 C/S 结构
Http
HTTP 协议(Hypertext Transfer Protocol, 超文本传输协议),是一个客户端请求和回应
的 标准协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。用户输入地址
和端口号之后就可以从服务器上取得所需要的网页信息。
通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容 格
式。客户端发送给服务器的格式叫“
请求协议”;服务器发送给客户端的格式叫“响应协议
http 请求由三部分组成,分别是:请求行、请求头、请求正文
格式
请求行
请求头 1
请求头 2
… 请
求空行
请求体
HTTP 响应也是由三个部分
组成,分别是:状态行、消息报头、响应正文
格式
状态行
响应头 1
响应头 2
… 响
应空行
响应体
Servlet
一、创建Web项目
1、在左侧空白右键,选择"New",再选择"Other"
2、在文本框输入"web",选择"Dynamic Web Project"
3、设置项目名称、服务器版本(target runtime)、web项目的版本(Dynamic web module version)为2.5版本
4、选择"Next",再"Next",设置context root(站点名,即项目对外访问路径)
二、修改Web项目的站点名
1、选择项目右键,选择"Properties"
2、选择"Web Project settings",,设置context root
三、创建Servlet类
方式一:通过继承HttpServlet类创建Servlet
1、创建普通Java类
2、继承HttpServlet类
3、重写service()方法
4、设置web.xml
<!-- servlet -->
<servlet>
<!-- 在当前web.xml中,servlet标签中的servlet-name的值必须唯一-->
<servlet-name>Servlet01</servlet-name> <!-- 给服务器看的,servlet的名称;servlet标签中的servlet-name要与servlet-mapping中的servlet-name保持一致 -->
<servlet-class>com.shsxt.servlet.Servlet01</servlet-class> <!-- servlet类的全路径(包名+类名);按住ctrl键,能够点进去,则表示路径正确 -->
</servlet>
<!-- servlet的映射配置 -->
<servlet-mapping>
<servlet-name>Servlet01</servlet-name> <!-- 给服务器看的,servlet的名称;servlet-mapping标签中的servlet-name要与servlet中的servlet-name保持一致 -->
<url-pattern>/ser01</url-pattern> <!-- 给浏览器看的,servlet资源的对外访问路径(注意路径前面要加"/") url-pattern的值是唯一的 -->
</servlet-mapping>
方式二:继承GenericServlet类
1、创建普通Java类
2、继承GenericServlet类
3、实现service()方法
4、设置web.xml
方式三:实现Servlet接口
1、创建普通Java类
2、实现Servlet接口
3、实现方法
4、设置web.xml
四、常见报错场景
1、修改了web.xml配置文件,需要重启服务器(配置才会生效)
2、url-pattern标签设置值时为未添加"/"
java.lang.IllegalArgumentException: Invalid <url-pattern> ser01 in servlet mapping
3、url-pattern的值不唯一
java.lang.IllegalArgumentException: The servlets named [Servlet02] and [Servlet03] are both mapped to the url-pattern [/ser02] which is not permitted
4、如果项目站点名与资源路径都正确,访问时还是显示404(请重启eclipse)
5、如果启动服务器时,出现端口冲突的异常
打开任务管理器,将与Java相关的进程全部结束