IT`huhui前言录
续, 持续修改更新。
Cookie
1. 定义:
服务器端写到客户端的文本信息,以名-值对形式保存数据2. Cookie原则:- 服务器可以向客户端写内容,只能是文本内容
- 客户端可以阻止服务器写入
- 只能拿自己web app 写入的东西
- Cookie 分两种
- 属于窗口/子窗口
- 属于文本(定时删除)
- 一个servlet/jsp设置的cookie能被同一个路径下面或者子路径下面的servlet/jsp读到(这里路径指的是URL)
Session
1. Cookie 和 Session的相同点:
Cookie和Session都是用来记录状态2. Cookie 和 Session的不同点: - Cookie记录在客户端 - Session记录在服务端 - Session和浏览器关联在一起3. 机制: 用SeesionID来关联4. 实现方法: + Cookie实现 SessionID放在Cookie临时内存里面(窗口) + URL重写实现5. 规则:
- 如果浏览器支持Cookie,创建Session的时候会把SessionID保存在Cookie里面 + 如果浏览器不支持Cookie,必须自己编程使用URL重写方法实现Session 这这需要用到:response.encodeURL() 其作用主要是:①转码 ②URL后面加入SessionID
6. getSession()的三种方法处理过程
// session 用于服务端维护用户状态// cookie 用于客户端维护用户状态// 两者需要配合完成用户状态的维护 // getsession () 等同于 getsession(true)// 处理过程:通过jserssionid判断是否有session如果当前存在session 则直接返回当前的session 如果不存在则新建一个新的session // getsession(false)(用户第一次创建的时候会使用这个方法判断)// 处理过程:通过jserssionid判断是否有session如果当前存在session 则直接返回当前的session 如果不存在则返回null
APPlication
1. 作用定义:
用于保存整个web application的生命周期内都可以访问的数据2. 实现javax.servlet.ServletContext接口
application对象有两个常用的方法,setAttribute()和getAttribute() 作用分别是 设置/取得 相关属性JSP
1. JSP基本语法
Declaraction声明
<%! %> 成员变量 <% %>局部变量scriptlet小程序段
<% JAVA程序代码%>expression表达式
<%= %> =后面必须是字符串或者可以转换成字符串的表达式 <%="hello world "%> <%=i+1%> <%=request.getParameter("name")%>comment注释
directive编译指令(编译期间指令)
<%@Directive属性="属性值"%> 常用Directive属性 ①page ②include <%@include file="fileURL"%> 注意不能在URL中传参action动作(运行期间的指令)
jsp:useBean jsp:include jsp:forward jsp:plugin内置对象
2. JSP九大内置对象
(1)HttpServletRequest类的Request对象 作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。(2) HttpServletResponse类的Respone对象
作用:代表响应对象,主要用于向客户端发送数据(3) JspWriter类的out对象
作用:主要用于向客户端输出数据; Out的基类是JspWriter(4) HttpSession类的session对象
作用:主要用于来分别保存每个用户信息,与请求关联的会话; 会话状态维持是Web应用开发者必须面对的问题。(5) ServletContext类的application对象
作用:主要用于保存用户信息,代码片段的运行环境; 它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享.(6) PageContext类的PageContext对象
作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。(7) ServletConfig类的Config对象
作用:代码片段配置对象,表示Servlet的配置。(8) Object类的Page(相当于this)对象
作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。 (9)Exception 作用:处理JSP文件执行时发生的错误和异常3. 查看生成的jsp
D:\workSpace\Servers.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\vote_web\org\apache\jsp4. JSP相关基础操作- 静态引入,先合并再执行
<%@include file = ""%>
- 动态引入,先分开执行,再合并;
- 引入JAVA的包
<%@ page import="java.util.*" %>
- JAVA语句要用<%%> 包起来,example:
<%Listlist = new ArrayList ();list.add("a");list.add("b");list.add("c");for(String str: list){ %> <%=str %>
<%}%>
5. 注意事项
JSP里面
${user.name } 实际上调用的是 User 类里面的get函数可以通过重写URL传参
http://localhost:8080/vote_web/el.jsp?username=huweihui ${param.username}
MVC模式简易理解
1. 定义:
M:业务逻辑层(业务逻辑处理) V:显示层<jsp freemarketj,js> C:控制层 (servlet)Dao 持久层 (数据库操作:增删改查)
2. 用处:
程序复用,代码清晰等3. 注意: 层次不是分的越多越好 影响程序性能 合理分层4. 处理过程: (例子servlet 用户发送求求到服务端 服务端读取配置文件 客户端要求传到controller controller调用Model层进行业务处理 model层再DAO层进行数据的获取 Dao层返回数据到Model层 逐层返回到controller层 返回给客户端)