servlet

HTTP

Http协议的定义:

超文本传输协议,应用层协议

协议格式

http://ip或域名:端口/项目路径/资源路径?参数名=参数值

协议特点

1、支持客户端/服务端模式
2、简单快速
3、灵活
4、http/1.1后支持持续连接
5、无状态

请求协议

请求行
请求方式(GET/POST) 请求路径 协议版本
请求头
每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。
请求正文
GEt请求没有请求正文,POST请求有

响应协议

响应行/状态行
协议版本 响应状态码 状态码说明
响应头/消息报头
每一个报头域都是由名字+“:”+空格+值组成,消息报头域的名字是大小写无关的。
响应正文
浏览器中能看到内容

消息头

请求头
referer
该请求头指明请求从哪里来(上一个页面是谁)
如果是直接从地址栏输入的地址,是没有referer请求头
常用场景:百度竞价、统计工作和防盗链等

响应头
Refresh:
自动跳转(单位是秒),可以在页面通过 meta 标签实现,也可在后台实现。

3秒钟后跳转到指定页面

<meta http-equiv="refresh" content="3;url=http://www.shsxt.com"> 

每几秒刷新页面一次

<meta http-equiv="refresh" content="3;">

ServLet实现步骤

1、新建项目

	1)、右侧空白,右键选择"New"
	2)、选择"Project",搜索"Web",选择"Dynamic Web Project"
    3)、设置项目名称及版本为2.5
	4)、选择"Next",再"Next",设置站点名Context root
    5)、选择"Finished"

2、新建普通Java类
3、实现Servlet规范,①继承HttpServlet类,②实现Servlet接口,③继承GenericServlet类

4、重写service()方法

public class Servlet01 extends HttpServlet { //此处用继承HttpServlet 类

	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		System.out.println("Hello Servlet!");
		
		// 能够输出流写出内容到浏览器中
		arg1.getWriter().write("Hello Servlet!");
		
	}
}

注意:

  1. 初始化方法,服务器执行的方法,只会执行一次,Servlet第一次被访问时执行
public void init(ServletConfig config) throws ServletException {
		System.out.println("Servlet03 init....");
	}
  1. 服务方法,可执行多次,每次访问servlet时都会调用
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("Servlet03...");
	}
  1. 销毁方法,servlet实例销毁时调用,只会调用一次
public void destroy() {
		System.out.println("Awsl....");
	}

5、配置web.xml (项目的WEB-INF目录下)

<servlet>
  	<servlet-name>servlet01</servlet-name>  <!-- servlet的名称,给服务器看的;要与<servlet-mapping>标签中的<servlet-name>保持一致  -->
  	<servlet-class>com.shsxt.servlet.Servlet01</servlet-class>  <!-- Servlet类的类名路径;按住ctrl键,能点进去表示路径正确  -->
</servlet>
<servlet-mapping>
    <servlet-name>servlet01</servlet-name><!-- servlet的名称,给服务器看的;要与<servlet>标签中的<servlet-name>保持一致  -->
  	<url-pattern>/ser01</url-pattern> <!-- servlet的对外访问路径,给浏览器看的 -->

<!-- 自启动:服务器启动时将该servlet实例化;数字表示优先级,值越小,优先级越高 -->
    <load-on-startup>1</load-on-startup>
</servlet-mapping>

注意:
1、< servlet>中的< servlet-name>标签的值要唯一

2、< servlet-mapping>中的< url-pattern>的值要唯一

 java.lang.IllegalArgumentException: The servlets named [servlet04] and [servlet05] are both mapped to the url-pattern [/ser04] which is not permitted

3、< servlet>中的< servlet-name>与< servlet-mapping>的< servlet-name>标签保持一致

4、< url-pattern>的值前面要加"/"

java.lang.IllegalArgumentException: Invalid <url-pattern> ser05 in servlet mapping

5、修改了配置文件必须要重启服务器才会生效
6、一个Servlet可以配置多个访问路径

通配符"*"
只能放在最前面或最后面
不能放中间且不能单独存在(以/分割的,不能和单词组成整体)。
越精确越优先。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值