1.动态页面
2服务器
web应用的原理
1、用户发起请求2、服务器处理请求3、响应
HTTP协议
1.HTTP请求,请求方法,post、get
2.HTTP响应,响应状态码500服务器发生错误,200状态正常,请求成功
tomcat
更改发布目录,改端口号,连接池配置文件
jsp
jsp执行过程:翻译——编译——执行
j sp构成:
1.html
2.java代码**:**
<% 代码 %> 里面每行java代码用;结尾
<%= 表达式 %>里面的代码不用;结尾
<%! 声明语句 %>定义变量、方法
<%-- jsp注释 --%>
3.jsp指令
page:
contentType:设置浏览器以哪种字符集解析页面
pageEncoding
import导包
include:
将其他的jsp文件加入到当前jsp页面
jsp内置对象
1.out: print ,write
2.request:
getParameter
getParameterValues
解决乱码问题setCharacterEncoding
转发和重定向getAttribute…setAttribute
removeAttribute
getCookies
3.response:
sendRedirect
addCookie
4.web项目基础
context root和项目名称
web.xml文件——页面跳转之后的代码能否执行——路径
5.session.
session概念
从打开一个浏览器,访问某个网站开始,直到进行过一系列操作,关闭浏览器,这个过程称之为一个会话(session)。同一个会话中可以通过session共享数据
session特点:
1、服务端生成,服务端(内存)存储
2、可以存储对象
3、会话结束时关闭
session使用及注意事项
方法setAttribute——getAttribute——removeAttribute
使用include标签将验证登录页面包含在每一个页面<%@ include file=""%>
思考:在页面定义的变量,能否在被include的页面使用?
使用<jsp: include page=“.jsp">包含某一文件,是否可以访问里面定义的变量
<jsp: include page=“.jsp">
导入时是不能带参数的
被导入的页面当然也无法获取了
注意事项
1、每次打开新的浏览器窗口访问服务端时,服务端会建立新的session,并给此session一个新的id
2、当使用A浏览器访问服务端后,在B浏览器新打开的窗口中获取不到A浏览器在session中存放的数据
3、当A浏览器访问服务端后,关闭窗口,再使用A浏览器打开新的窗口,则在此窗口中无法获取到前一个被关闭窗口存放到session中的数据
用session做一个购物车,在加入购物车的时候,如果购物车有相同的商品,直接增加数量。在前端页面输入数量的时候要进行校验,只能是数字。
获取输入框的值的两种办法
session原理
session持久化:
1、第一次访问服务端时,获取到sessionid
2、把sessionid持久化到客户端的cookie中,特别注意cookie的名称必须是JSESSIONID
3、第二次之后再访问客户端,则前面保存的sessionid会被request自动带到服务端
4、服务端依据接收到sessionid,从对应的session中获取属性值
pageContext
getRequest
getSession
getResponse
getPage
getApplication
page
指jsp页面本身,不常用
application
全局对象,web应用的所有用户共享同一个
setAttribute
getAttribute
getAttributeNames
getRealPath
exception
异常处理对象,只有当isErrorPage="true"时可用,不常用
config
读取配置信息对象,不常用
cookie
cookie是应用服务器为了辨别用户身份,进行会话跟踪而储存在客户端的数据
cookie特点:
1、客户端(硬盘)存储
2、以键值对形式存储
3、一个cookie只能存放一个键值对
创建:
Cookie cookie = new Cookie(“name”,“value”);
cookie.setMaxAge(以秒为单位的存续时间);
response.addCookie(cookie);
获取:
Cookie[] cookies = request.getCookies();
for(int i=0;i<cookies.length;i++){
if(“asd”.equals(cookies[i].getName())){
System.out.println(cookies[i].getValue);
}
}
cookie使用
getName
getValue
setMaxAge
getMaxAge
会话期cookie——不使用setMaxAge()设置存续时间,关闭浏览器,则消失
持久性cookie——使用setMaxAge()设置存续时间,存续时间到了之后消失
cookie版电话本应用
中文及特殊字符处理
URLEncoder
URLDecoder
jdbc
1、获取驱动包并加入项目
2、加载驱动类
Class.forName(“oracle.jdbc.driver.OracleDriver”);
3、获取连接
1、url:“jdbc:oracle:thin:@localhost:1521:orcl”
2、username
3、password
conn = DriverManager.getConnection(url,username,password);
4、创建statement
Statement用于普通查询(拼接sql)
executeQuery查询数据,返回一个ResultSet对象
executeUpdate增删改数据,返回增删改的条数
PreparedStatement用于参数化查询
setString
setInt
executeQuery
executeUpdate
5.、获取数据ResultSet
6、关闭资源
rs.close()
ps.close()
conn.close()
注意事项
防止sql注入
一定要关闭资源
将session购物车移植到数据库
连接池和分页
JSON(JavaScript Object Notation)
是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
JSON格式:
JSON对象
以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
JSON数组
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
例如:
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
JSON字符串和JSON对象
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
JSON字符串转换为JSON对象
要运用上面的str1,必须运用下面的要领先转化为JSON对象:
//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
JSON对象使用
对象
var obj = { “name”: “cxh”, “sex”: “man” };
alert(obj.name);
alert(obj.sex);
数组