学javaWeb常识

web核心–三个标准

  • URL统一资源标识符,这是一个世界通用的负责给万维网上例如网页这样的资源定位的系统。
  • HTTP超文本传输协议,它负责规定浏览器和服务器怎样互相交流。
  • HTML超文本标记语言,作用是告诉浏览器向用户显示什么样的内容。

JSP三大指令:

  • page 常用功能:导包,异常页面,页面编码
  • include 作用包含指定的页面
  • taglib 用来导入第三方的标签库

MVC设计模式

  • Model模型
  • View视图
  • Controller控制器–>[kənˈtroʊlə(r)]

Servlet生命周期

  • 加载类
  • 实例化Servlet
  • 初始化Servlet对象init()
  • 响应客户请求|service()|七种请求方式(get、post、head、put、delete、options、connect)
  • 销毁阶段destroy()

GET与POST请求方式比较(安全性、编码方式、传输文件大小、请求速度)

区别点GETPOST
点击返回/刷新按钮没有影响数据会重新发送(浏览器将会提示用户数据被从新提交)
添加书签可以不可以
缓存可以不可以
编码类型(Encoding type)application/x-www-form-urlencodedapplication/x-www-form-urlencoded or multipart/form-data. 请为二进制数据使用multipart编码
历史记录没有
长度限制没有
数据类型限制只允许ASCII字符类型没有限制。允许二进制数据
安全性查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST求情比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输
可见性查询字符串显示在地址栏的URL中,可见查询字符串不会显示在地址栏中,不可见

JSP的9个内置对象

变量名数据类型说明
requestjavax.servlet.http.HttpServletRequest当前的请求对象
responsejavax.servlet.http.HttpServletResponse当前响应对象
sessionjavax.servlet.http.HttpSession对应当前请求的客户会话对象
outjavax.servlet.jsp.JspWriter对象当前响应对象的输出流
applicationjavax.servlet.ServletContextWeb应用对象
pageContextjavax.servlet.jsp.PageContext封装当前请求内此JSP页面信息的对象
pagejava.lang.Object指向页面自身的方式,相当于this关键字
configjavax.servlet.ServletConfig与当前JSP页面的Servlet对应的ServletConfig对象
exceptionjava.lang.Throwable其他地方抛出的Throwable对象,仅当<%@ page isErrorPage="True" %>时有效

Web层共享数据的范围(作用域)

  • 应用对象:ServletContext –>Application
  • 会话对象:HttpSession –>Session
  • 请求对象:HttpServletequest –>Request
  • 页面对象:PageContext –>Page

4个作用域与9个内置对象的对应关系

  • Application—-application
  • Session—-session
  • Request—-request
  • Page—-response、pageContext、out、config、page、exception

共享数据类型的基本方法

  • setAttribute()
  • getAttribute()
  • removeAttribute()
cookiesession
数据存放在客户的浏览器/磁盘上数据放在服务器上
不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session
考虑到减轻服务器性能方面,应当使用COOKIE会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。 
其他信息如果需要保留,可以放在COOKIE中将登陆信息等重要信息存放为SESSION

jndi的常规配置

在META-INF下创建个context.xml,内容类似如下(我的配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jndi/xstk"
auth="fanyun"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/hello"
username="root"
password="123456"
maxActive="4"
maxIdle="2"
maxWait="5000"
></Resource>
</Context>

jstl.jar官方下载地址

forward和redirect对比

转发(forward)重定向(redirect)
执行forword后依然是上一次请求执行redirect后生成第二次请求
forward的目标可以访问原请求的请求参数,因为依然是同次请求,所以原请求的请求参数、request范围的属性全部存在redirect的目标不能访问原请求的请求参数,因为是第二次请求了,所以原请求的请求参数、request范围的属性全部消失
地址栏里请求的URL不会改变地址栏改为重定向的目标URL,相当于在浏览器地址栏里输入新的URL后按回车键

扫一扫,打赏我
Fanyun Fanyun
Copyright©1993 - Now. 瞎塔码搞