关于Tomcat&Servlet的详情,以及request的常见方法,转发等

注解实现servlet接口

常用的有value和urlPatterns,也就是配置路径从而tomcat可以调用servlet

@Target({ElementType.TYPE})
			@Retention(RetentionPolicy.RUNTIME)
			@Documented
public @interface WebServlet {
    String name() default "";//相当于<Servlet-name>

    String[] value() default {};//代表urlPatterns()属性配置

    String[] urlPatterns() default {};//相当于<url-pattern>

    int loadOnStartup() default -1;//相当于<load-on-startup>

    WebInitParam[] initParams() default {};

    boolean asyncSupported() default false;

    String smallIcon() default "";

    String largeIcon() default "";

    String description() default "";

    String displayName() default "";
}

Servlet接口主要有以下几种抽象结构,GenerciServlet,HttpServlet
通过implements实现的方法,实现HttpServlet接口,从而复写HttpServlet中的dopost、doget方法

HTTP:

主要有以下两种方式:GET和POST
GET:
1. 请求参数在请求行中,在url后。
2. 请求的url长度有限制的
3. 不太安全
POST:
1. 请求参数在请求体中
2. 请求的url长度没有限制的
3. 相对安全

一个是请求(request)另外一种是响应(response
request主要是获取请求的信息,respose设置响应信息

request方法如下

>  - String getMethod() //获取请求方式
>  - String getContextPath() //获取虚拟目录
>  - Stirng getServletPath() //获取Servlet路径
>  - String getRequestUri() getRequestURL() //获取统一资源标识符(URI),获取统一资源定位符(URL)
>  
1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数
	1. String getParameter(String name):根据参数名称获取参数值    username=zs&password=123
	2. String[] getParameterValues(String name):根据参数名称获取参数值的数组  hobby=xx&hobby=game
	3. Enumeration<String> getParameterNames():获取所有请求的参数名称
	4. Map<String,String[]> getParameterMap():获取所有参数的map集合

	* 中文乱码问题:
	* get方式:tomcat 8 已经将get方式乱码问题解决了
	* post方式:会乱码
	* 解决:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8");


2. 请求转发:一种在服务器内部的资源跳转方式
		1. 步骤:
			1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
			2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response) 

		2. 特点:
			1. 浏览器地址栏路径不发生变化
			2. 只能转发到当前服务器内部资源中。
			3. 转发是一次请求、
3. 共享数据:
* 域对象:一个有作用范围的对象,可以在范围内共享数据
	* request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
	* 方法:
		1. void setAttribute(String name,Object obj):存储数据
		2. Object getAttitude(String name):通过键获取值
		3. void removeAttribute(String name):通过键移除键值对

4. 获取ServletContext:
		* ServletContext getServletContext()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值