1、系统架构
1.CS架构(Client/Server 客户端/服务器)
特点 要在客户端安装程序
部署维护工作量大
业务逻辑可以在客户端,减少服务器压力
客户界面友好且功能强
2.BS架构(Brvwer/Server 浏览器/服务器)
特点 只需要浏览器和网络,但功能受到浏览器限制
程序在服务器端,部署维护简单
客户界面需要刷新,频繁访问服务器
2、开发环境
1.Server Tomcat 开源免费的JavaWeb服务器程序
Werlogic 现属于Orcale公司的商业服务器程序
2.Eclipse 切换透视图为JavaEE
配置Server
创建动态网页项目
设置JSP页面的默认字符集UTF-8
3、定义特点 Java Server Page
支持动态网页的技术
HTML和java代码混合 (java代码放在<% %>里嵌入到网页中,<% %>内的代码放在服务器断,html代码放在<%= %>)
4、基本语法
1.指令标识
<%@ 指令名 属性=属性值……%>
是设置整个网页的相关信息
page language="java" 程序语言
contentType="text/html; charset=UTF-8" 编码语言
pageEncoding="UTF-8" 页面解析语言
import import=“类的全路径”
include file=“文件路径”
把指定文件静态包含到当前文件中
包含之后再进行编译
file属性不可以包含JSP表达式
2.脚本标示
jsp表达式 <%=Java变量或表达式%>
向jsp页面输出变量或表达式的运算结果
代码片段 <% java代码%>
特点 局部变量,页面之间不共享请求
生命周期:请求的开始到结束
作用范围:单个请求
声明标识 <%! 声明变量或方法的代码%>
特点 全局变量,每个页面共享同一请求
生命周期:从创建到服务器关闭或代码有变动
作用范围:所有访问该页面的请求,不能跨页面
3.动作标识
<jsp:动作名 属性=属性值……></jdp:动作名>
基于XML语法格式
include page=“文件路径”
先进行编译再包含
文件路径可以使用jsp表达式
把指定文件编译后包含到当前文件中
forward page=“跳转的本网站页面的路径”
跳转的页面仅限于当前网站
4.JSP注释
网页注释 <!-- 注释内容 --> 会出现在网页源代码中
隐藏注释 <%--注释内容--%> 写在网页里,浏览器查看源代码时不会显示
java注释 写在<% %>里 不会出现在源代码里
// 行注释
/**/ 块注释
5、内置对象
out 以缓冲方式向浏览器发送对象
方法 out.write(“字符串”)
out.print(“内容”)
out.println(“内容”) 自动在内容后面加换行符,不显示在网页效果里,只能在源代码里查看
request 客户端请求对象
请求转发 必须使用 forward 动作进行转发
request.setAttribute(key,object) 在请求对象中添加新数据
request.getAttribute(key) 取出请求对象中的数据
请求参数 getParameter(key) 返回String类型
中文乱码 请求的默认字符集是ISO-8859-1不支持中文 → 进行转码先转成type[],自使用UTF-8转成字符串
name = new String (name.getBytes("iso-8859-1"),"UTF-8");
可以用过滤器对全部请求完成转码
接收cookie 返回当前网站的Cookie集合
中文解码 URLDeCoder.decode(“编码后的字符串”) 返回解码后的中文字符串
客户端信息查询项 request.getMethod() 请求方式
request.getRemoteAddr() 客户端地址
request.getRemoteHost() 客户端机器名
request.getRemotePort() 客户端端口号
request.getServerName() 服务器机器名
request.getServerPort() 服务器端口
request.getHeader("User-Agent") 请求头信息
request.getLocale() 地区信息
response 服务器端响应对象
发送信息 getWriter().writer("内容") 立即向浏览器发送输出内容,不需要缓存
设置响应头 setHeader("Cache-Control", "no-cache") 禁止浏览器缓存
setHeader("refresh","秒数") 定时刷新页面
setHeader("refresh","秒数;url=链接地址") 定时跳转页面(跳转地址开头不是http会默认为本网站跳转)
跳转页面 sendRedirect("链接地址") 外部地址要以http开头
设置cookie Cookie是服务器发送到浏览器的键值对,浏览器的请求自动携带Cookie
创建 Cookie a = new Cookie(“key”,“value”)
设置属性 setMaxAge(秒数) 设置cookie的生命周期(默认周期是浏览器开启到关闭)
添加cookie addCookie(cookie对象)
中文编码 URLEncoder.encode(“中文字符串”) 返回编码后的字符串
会话对象
6、http协议
1.请求协议
报文格式 请求行
请求头
请求体
请求方式 get 请求得到页面资源
特点:请求参数附加在URL后面 url?key1=value1&key2=value2&……
请求报文里没有请求体
长度受限保密性低,但使用方便
可以使用url地址或form表单
post 提交数据到服务器
特点:请求参数以请求体的形式传递 key1=value1&key2=value2&……
长度不限保密性高,要使用form表单
form表单 method=“post”
2.响应协议
报文格式 响应状态行 (协议版本、响应码、响应信息)
响应消息头
响应体
响应码 200 代表成功无任何错误
404 页面未找到
500 服务器程序异常