JAVA Web知识点整理(一)

B/S结构的程序中,用于描述服务器端和浏览器端数据传输结构和方式的标准规范

  • 请求(Request)---请求头(Request Head)和请求体(Request Body)
  • 响应(Response)---响应头(Response Head)和响应体(Response Body)

Tomcat目录结构说明

(1)bin---启动停止服务器的命令   重点
(2)conf---配置文件    重点
(3)lib---Tomcat自己的类库Jar文件
(4)logs---记录日志文件---catalina.yyyy-mm-dd.txt中记录了启动/停止服务器时,控制台的输出内容
(5)temp---临时文件
(6)webapps---存放发布的web项目---每一个web应用程序都必须发布到此目录中才能运行   重点
             每个Web项目对应一个文件夹,其中必须包含一个WEB-INF的子文件夹,而且WEB-INF下必须有一个web.xml的配置文件
(7)work---Tomcat自己的工作目录,用于将jsp代码转换为java代码
------------------------
Tomcat的配置1---修改\conf\server.xml---修改Tomcat的端口号
------------------------
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

注意:只要是修改了xml配置文件,就要重启Tomcat服务器才能生效;

GET请求和POST请求的区别

(1)GET请求提交的参数写在请求头中,POST请求提交的参数写在请求体中   【本质区别】  
(2)GET请求提交的参数在浏览器栏上可见,不安全,不适合传输密码等关键数据

(3)GET提交的数据有最大容量限制,一般不超过4K,POST没有限制,适合传输大文件

提交请求参数的三种方式

(1)通过表单提交
   <form action="user_login.jsp" method="get或post">
    <input type="text" name="username" />
    <input type="password" name="password" />
    <input type="submit" name="登录" />
   </form>
(2)通过URL重写提交---属于GET方式,格式为xxx.jsp?参数名1=值1&参数名2=值2...   以?开头,多个参数以&分割
   <a href="user_login.jsp?username=etc&passwword=123">登录</a>
(3)通过浏览器栏输入地址直接提交---属于GET方式,格式为xxx.jsp?参数名1=值1&参数名2=值2...   以?开头,多个参数以&分割

request接收请求参数的两种方式

(1)使用request对象的getParameter("参数名")方法接收单个字符串参数
   (1.1)参数名应和表单元素的name属性完全一致,区分大小写,返回类型为String
   (1.2)如果没有输入参数值,则返回空白的字符串""
   (1.3)如果表单元素的name属性值和参数名不一致或未提交参数直接接收,则返回null
(2)使用request对象的getParameterValues("参数名")方法接收多个字符串参数,返回字符串数组
   (2.1)如果表单元素的name属性值和参数名不一致或未提交参数直接接收,则返回null

常见的字符编码表

为了方便应用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示,并一一对应,形成一张表,这就是字符编码表,简称码表或字符集
(1)ASCII---美国使用的美国标准信息交换码,用一个字节的低7位表示一个字符,最多能表示128个字符
(2)ISO8859-1---欧洲国家使用的拉丁码表,又称Latin-1编码,用一个字节的8位表示一个字符,最多能表示256个字符     重点
(3)GB2312---中国大陆使用的简体中文编码表,用2个字节表示一个字符
(4)BIG5---台湾使用的繁体中文编码表,用2个字节表示一个字符
(5)GBK---GB2312的升级版,融合了更多的中文文字符号,用2个字节表示一个字符          重点
(6)Unicode(Uniform Transformation Format / UCS(Universal Character Set)---国际标准码/国际字符集,融合了多国文字的统一标准
   (6.1)UTF-8---为了节省空间,提高传输效率,用1到3个字节表示一个字符,最适合用于网络传输    重点
   (6.2)UTF-16---用2个字节来表示一个字符,最适合用于本地字符串存储

字符编码和字符解码

(1)字符编码---将字符转换为对应的二进制串 String --> byte[]


(2)字符解码---将二进制串转换为对应的字符 byte[] -->String

提交参数时产生中文乱码的原因

(1)浏览器提交中文数据时,使用UTF-8编码提交给Tomcat服务器
(2)Tomcat服务器默认使用iso8859-1将数据进行解码

解决POST请求的中文乱码问题

(1)接收参数之前,添加设置字符编码的语句,request.setCharacterEncoding("utf-8");

(2)或者,使用过滤器进行全部页面的POST中文乱码处理,此方法只对POST请求有效

解决GET请求的中文乱码问题

(1)先将乱码字符串按iso8859-1的格式编码回原始的字节数组
(2)再将字节数组按utf-8的格式解码成字符串,username = new String(username.getBytes("iso8859-1"), "utf-8");

------------------------
统一操作---修改server.xml,在<Connector>标签中增加URIEncoding="utf-8",统一进行全部页面的GET中文乱码处理,此方法只对GET请求有效
------------------------
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

JSP的9个内置对象

out输出对象---是javax.servlet.jsp.JspWriter类的实例 --> java.io.Writer类  
作用---向页面输出响应信息          
request请求对象---实现了javax.servlet.http.HttpServletRequest接口 --> ServletRequest接口
作用---客户端发出请求时,所携带的请求信息的封装对象,包括表单请求参数,请求头等信息
response响应对象---实现了javax.servlet.http.HttpServletResponse接口 --> ServletResponse接口
作用---服务器端响应请求时,所携带的响应信息的封装对象,包括各种响应标识状态,响应头等信息
session对象---实现了javax.servlet.http.HttpSession接口(顶层)
作用---存储和某个客户端相关的会话信息的封装对象,靠SessionID区分不同的用户


application应用程序对象---实现了javax.servlet.ServletContext接口(顶层)
作用---同一个web项目中的所有用户共享同一个application全局对象
config配置对象---实现了javax.servlet.ServletConfig接口(顶层)
作用---存储Servlet类的配置信息,在JSP页面中不常用
page页面对象---是java.lang.Object类的实例(顶层)
作用---表示当前页面生成的Servlet类的实例,相当于this,不常用
pageContext页面上下文对象---是javax.servlet.jsp.PageContext类的实例 --> javax.servlet.jsp.JspContext类          
作用---封装了当前页面范围的信息,提供了很多的getXXX()方法,可以方便地访问其他作用域对象
exception异常对象---是java.lang.Throwable类的实例(顶层)
作用---只能用于异常处理页面中,只有设置了isErrorPage=true的页面才能使用该对象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值