Servlet学习之路day02

Servlet学习之路day02

Servlet

 Servlet 指的是一个运行在Tomcat上的Java类,可以通过Java中的代码,处理用
 户的请求 并通过io流,对用户进行响应

Servlet 编写步骤:

 1.编写一个类,继承自Httpservlet
 2.重写父类的service方法
 3.在service方法中 对用进行响应
Servlet常用操作:
// 1.设置常用操作
response.setContentType("text/html;charset=utf-8");
//2.获取用于向浏览器输出内容的 打印流
PrintWriter pw = response.getWriter();
案例
public class Servlet1 extends HttpServlet {

	/*
	 * HttpServletRequest:	请求对象,包含了请求的信息
	 * HttpServletResponse:	响应对象,包含了用于响应的一系列功能。
	 */
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		//1.设置响应的文字编码
		response.setContentType("text/html;charset=utf-8");
		//2.获取用于向浏览器输出内容的打印流
		PrintWriter pw = response.getWriter();
		//io操作
		pw.print("啊哈哈哈");
		pw.flush();
		pw.close();
		
		
	}  
}

通过web.xml的方式 配置映射地址:

 步骤1.	将Servlet类 配置到web.xml中, 并起别名
 			<servlet>
 				<servlet-name>任意标识符别名</servler-name>
 				<servlet-class>包名.类名</servlet-class>
 			</servlet>
 步骤2. 给指定别名的servlet,添加映射的地址(注意:这里指的是添加 而不是设置!可以添加多个)
 			<servlet-mapping>
 				<servlet-name>已指定的别名</servlert-name>
 				<url-pattern>/映射地址</url-patter>
 			</servlet-mapping>

Servlet生命周期

Servlet在tomcat中 是单例存在的,只会创建一个对象,这个对象的生命周期,存在三个Java方法的体现:

 1.init:当Servlet初始化完毕时,自动执行!
 默认情况下,当用户第一次访问此Servlet时,对象被创建后续访问重复利用此对象!一般我们在这里进行一些资源的初始化操作!
 2.service:当用户请求时,此方法自动执行!
 此方法每次执行 都在一个新的线程中!
 3.destroy:当Servlet即将被销毁时,自动执行!
 当服务器被关闭 或 应用被卸载时,会销毁此对象! 一般用于释放一些资源!

doGet方法 & doPost方法

 我们一般重写doGet方法 处理get请求。
 重写doPost方法,处理post请求。
常见的出发GET请求的方式:
 1.点击超链接跳转。
 2.浏览器输入网址后回车。
 3.表单提交时,提交方式为GET。
 4.通过js操作window。location.href进行修改地址
 5.通过后续学习的Ajax技术的GET请求
常见的出发PSOT请求方式:
 1.表单提交时,提交方式为POST;
 2.后续学习的Ajax技术的POST请求;

GET请求和POST请求的区别*****

GET请求:
  • 请求的数据 以键值对的形式 在网址中拼接
  • 储能传输字符串数据
  • 可传输的数据量有限,网址大小不能超过2048b
  • 数据不安全
  • 效率较高
POST请求:
  • 请求的数据 以键值对的形式 在请求体中存储
  • 可以传输任意类型的数据(文件上传只能使用POST完成)
  • 理论上,可传输的数据是无限制的!
  • 数据较为安全
  • 效率较低

如何接受用户请求的参数***

1.接受单个请求参数(String)

String value = request.getParamaeter(String key);

2.接受一组请求参数(String[])

String[] values = request.getParamaterValues(String key);

请求参数乱码问题*****

 tomcat8版本 解决了GET请求时 乱码的问题,POST请求依然是乱码的!
 请求是指浏览器给你发数据乱码。
方法一:
解决所有乱码问题:(tomcat早期版本乱码问题/POST请求乱码问题)
原理:	将乱码的文字,按照乱码的编码打碎成字节数组,再按照正确的编码组装为字符串即可!
步骤:	1.将接受到的文字字符串,按照ISO-8859-1编码 打碎
	byte[] bytes = 乱码文字.getBytes("ISO-8859-1");
 		 2.将字节数组,按照正确的编码重新组装为文字
	String 正常文本 = new String(byte,"UTF-8");
简洁写法:
	String 正常文本 = new String(乱码文字.getBytes("ISO-8859-1"),"UTF-8");
方法二:
 进用于解决POST乱码问题,用于在数据获取之前,调整请求体的编码格式!
 (建议写在doPost)方法第一行
	requset.setCharacterEncoding("UTF-8");

响应时 乱码问题*****

 处理相应乱码时,GET请求与POST请求方法一致!
方法一:
 设置网页内容类型,并设置编码格式
 response.setContentType("text/html;charset=utf-8");
方法二:
仅仅用于设置编码格式,使用方法2 可能导致浏览器打开依然乱码!
	response.setCharacterEncoding("utf-8");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值