Javaweb学习总结(三)

一.request和response原理:
-----1.tomcat服务器会根据请求url中的资源路径,创建对应的servletDemo的对象
-----2.tomcat服务器,会创建request和response对象,request对象中封装请求消息数据
-----3.tomcat将request和response两个对象传递给service方法,并且调用service方法
-----4.程序员(我们)可以通过request对象获取请求消息数据,通过response对象设置响应消息数据
-----5.服务器在给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据
request和response对象是由服务器创建的,我们来使用它们
二.request对象继承体系
----- servletrequest --接口
----- | 继承
----- HTTPservletrequest --接口
----- | 实现
----- org.apache.catalina.connector.requestfacade 类(tomcat编写的)
三.servlet配置方式
-----1.全路径匹配 以/开始 例:/a
-----2.路径匹配,前半段匹配
以/开始,但是以结束 例:/a/
其实是一个通配符,匹配任意文字
----- 3.以扩展名匹配
没有/ 以*开始 *.扩展名 *.aa
四.servletcontext
每个web工程都只有一个servletcontext对象,不管在哪个servlet里面,获取到的这个类的对象都是同一个
-----获取servletcontext对象
servletcontext context=getservletcontext();
五.servletcontext的作用:
----- 1.获取全局配置参数
------2.获取web工程中的资源
----- 3.存取数据 servlet间共享数据 域对象
六.
-----1.可以获取全局配置参数

 <context-param>
      <param-name>address</param-name>
      <param-value>深圳宝安</param-value>
 </context-param>

-----2.可以获取web应用中的资源
----------1.获取资源在tomcat里面的绝对路径
先得到路径,然后自己new inputstream
context.getrealpath("");//什么都不写,这里得到的是项目在tomcat里面的根目录
D:\tomcat…\Demo03
string path=context.getrealpath(“file/config.properties”);
D:\tomcat…\Demo03\file\config.properties
----- 2.getresourceasstream 获取资源 转换为流对象
直接给相对路径,然后获取流对象
----- 3.通过classloader去获取web工程下的资源
默认的class loader的路径是 D:\tomcat…\Demo03\WEB-INF\classes
我们必须得回到Demo03这个目录下,才能进入file目录,
回到上一级目录…/
因此getresourceasstream("…/…/file/config.properties"); 回两级
七.使用servletcontext存取数据
------1.定义一个登录的HTML页面,定义一个form表单
----- 2.定义一个servlet,名为LoginServlet
----- 3.针对成功或者失败,进行判断,然后跳转到不一样的网页
八.servletcontext的创建与销毁
服务器启动的时候,会为托管的每一个web应用程序,创建servletcontext对象,
从服务器移除托管,或者是关闭服务器的时候,销毁
----- servletcontext的作用范围
只要在这个项目里面,都可以取,只要同一个项目,A项目存,B项目取是取不到的
九.servletrequest
这个对象封装了客户端提交过来的一切数据
-----1.可以获取客户端请求头信息
-----2.获取客户端提交过来的数据(一个key可以对应多个值)
-----3.获取中文数据
客户端提交数据给服务器端,如果数据中带有中文的话,出现乱码情况参照以下方法解决
----get请求过来的数据,在url地址栏上就已经经过编码了,所以我们取到的就是乱码
tomcat收到了这些数据,getparameter默认使用ISO-8859-1去解码
先让文字回到ISO-8859-1对应的字节数组,然后再按utf-8组拼字符串
username=new string(username.getbytes(“ISO-8859-1”),“UTF-8”);
----或者直接在tomcat里面作配置,以后get请求过来的数据永远都是用UTF-8编码
在tomcat里面的conf/server.xml

  <Connector  connectionTimeout="20000"   port="8080"  protocol="HTTP/1.1"
      redirectPort="8443"  URIEncoding="UTF-8"/>

----如果是post
这个是设置请求体里面的文字编码,get方式用这个没用
request.setCharacterEncoding(“UTF-8”);
此行一定要写在getparameter之前
注: get中的数据在地址栏上,请求体里面没有数据
十. servletresponse
作用: 负责返回数据给客户端,输出数据到页面上
响应的数据中出现乱码
直接在上面写上response.setContentType(“text/html;charset=UTF-8”);即可
----字符流response.getWriter()
1.指定输出到客户端的时候,这些文字使用UTF-8编码
response.setCharacterEncoding(“UTF-8”);
2.直接规定浏览器看这份数据的时候,使用UTF-8编码来看
response.setHeader(“Content-Type”,“text/html;charset-UTF-8”);
-----字节流response.getOutputStream()
默认就是UTF-8
十一.演练下载资源
-----1.直接以超链接的方式下载,不写任何代码,也能够下载东西
先把要下载的资源复制粘贴放在webcontent中然后编写HTML文件超链接中写上路径
原因是:tomcat里面有一个默认的servlet–DefaultServlet,这个servlet专门用于处理放在tomcat服务器上的静态资源

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值