javaWeb总结
javaWeb总结
三生石javaWeb总结
## 程序架构
C/S架构程序
B/S架构程序
B\S架构工作原理
B/S架构采用请求/相应模式进行交互
计算机通过统一资源定位符实现资源访问
- URL:Uniform Resource Locator的缩写
- 唯一能识别Internet上具体的计算机、目录或文件夹位置的名命约定
web服务器
- 是可以向发出请求的浏览器提供文档的程序
- 提供网上的信息浏览服务
常用的Web服务器
- nMicrosoft:IIS
- nApache:Tomcat
- nOracle:WebLogic
- nIBM:WebSphere
- nNginx
Tomcat服务器
- Apache Jakarta的开源项目
- 轻量级应用服务器
- 开源、稳定、资源占用小
下载路径:http://tomcat.apache.org/download-70.cgi
Tomcat目录结构
目录 | 说明 |
---|---|
/bin | 存放各种平台下用于启动和停止Tomcat的脚本文件 |
/conf | 存放Tomcat服务器的各种配置文件 |
/lib | 存放Tomcat服务器所需的各种JAR文件 |
/logs | 存放Tomcat的日志文件 |
/temp | Tomcat运行时用于存放临时文件 |
/webapps | 当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中 |
/work | Tomcat把由JSP生成的Servlet放于此目录下 |
配置Tomcat
- 默认端口:8080
- 通过配置文件server.xml修改Tomcat端口号
1 | <Connector port="8080" |
修改port的值
启动Tomcat: bin\startup.bat
访问Tomcat主页:http://localhost:端口号
停止Tomcat: bin\shutdown.bat
jsp概述
JSP(Java Server Pages)
运行在服务器端的Java页面,使用HTML嵌套Java代码实现
代码注释:
- HTML注释:
- JSP注释:<%–JSP注释–%>
- JSP脚本中注释:<%//单行注释%><%/*多行注释*/%>
JSP执行过程
翻译_jsp.java——-翻译_jsp.class——执行
Web程序常见错误
404错误—找不到访问的页面或资源
- 运行时,URL输入错误
- 将页面放在WEB-INF下
- 外部启动Tomcat,未部署项目
500错误—jsp页面代码有误
页面无法显示—未启动Tomcat
page指令
通过属性定义了JSP的特性,实现与JSP容器的通信
1 | <%@ page language="属性值" import="属性值" contentType="属性值"%> |
属性 | 说明 |
---|---|
language | 指定JSP页面使用的脚本语言 |
import | 通过该属性来引用脚本语言中使用到的类文件 |
contentType | 用来指定页面的MIME类型,以及字符编码方式 |
out对象
- out对象是jsp的内置对象
- 实现数据的输出显示
属性 | 说明 |
---|---|
向页面输出显示 | |
println | 向页面输出显示,在结尾处添加换行 |
获取表单提交的数据
请求对象:request
1 | public String getParameter(String name) |
实例:
1 | //html代码 |
get与post区别
参数出现在URL中 | 是 | 否 |
---|---|---|
长度限制 | 有 | 无 |
安全性 | 低 | 高 |
URL可传播 | 是 | 否 |
request对象常用方法
方法名称 | 说明 |
---|---|
String getParameter(String name) | 根据表单组件名称获取提交数据 |
String[ ] getParameterValues(String name) | 获取表单组件对应多个值时的请求数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码 |
RequestDispatcher getRequestDispatcher(String path) | 返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求 |
内置对象
jsp已经准备好的,可以直接使用的对象
- 请求对象:requesst
- 输出对象:out
- 相应对象:response
- 应用程序对象:application
- 会话对象:session
- 页面上下文对象:pageContext
- 页面对象:page
- 配置对象:config
- 异常对象:exception
中文乱码
jsp中默认使用的字符编码方式:ios-8859-1,不支持中文
常见的支持中文的编码方式
编码方式 | 收录的字符 |
---|---|
gb2312 | 常用简体汉字 |
gbk | 简体和繁体汉字 |
utf-8 | 所有国家需要的字符 |
解决中文乱码
设置请求和相应的编码格式
1 | request.setCharacterEncoding("utf-8"); |
get请求出现乱码
- 治标的方法:new String( s.getBytes(“iso-8859-1”), “utf-8” );
- 治本的方法:配置tomcat\conf\server.xml文件
1 | <Connector connectionTimeout="20000" port="8080" |
在请求中存储属性
在请求中保存属性
1 | public void setAttribute(String name,Object o); |
在请求中获取属性
1 | public Object getAttribute(String name) |
1.在使用属性值的时候要做非空判断,否则会出现空指针异常
2.它的返回值类型是Object类型,需要做数据类型的转换
传发与重定向
转发
RequestDispatcher对象==================forward()方法
1 | request.getRequestDispatcher("url").forward(request, response) |
重定向
将用户请求重新定位到一个新的URL
1 | response.sendRedirect("url") |
区别
比较项 | 转发 | 重定向 |
---|---|---|
URL变化 | 否 | 是 |
重新发出请求 | 不会 | 会 |
是否携带请求 | 是 | 否 |
目标URL要求 | 仅本Web应用 | 任意URL |
重定向是客户端行为,转发是服务器行为
session对象
- 一个会话就是浏览器与服务器之间的一次通话
- 会话可以在多次请求中保存和使用数据
用法
1 | public void setAttribute(String name, Object value); |
每个session都有一个唯一的sessionid
1 | public String getId(); |
会话的清除和过期
若没有清理机制,会导致性能问题或服务器崩溃
- 程序主动清除session数据
- 服务器主动清除长时间没有再次发出请求的session
程序主要清除session数据
设置会话失效
1 | session.invalidate(); |
移除会话的一个属性
1 | session.removeAttribute("userName"); |
服务器主动清除长时间没有再次发出请求的session
设置会话过期时间
方法一
1 | public void setMaxInactiveInterval(int interval); |
方法二:设置web.xml文件
1 | <session-config> |
cookie
cookie以文件方式保存数据
添加数据
1 | public void addCookie(Cookie cookie) |
获取数据
1 | public Cookie[] getCookies() |
设置有效期
1 | public void setMaxAge(int expiry) |
application
1 | <body> |
三个对象对比
request、session、application
相同点:都可以储存属性
不同点:
- request中存储的数据仅在一个请求中可用
- session中存储的数据在一个会话的有效期内可用
- application中存储的数据在整个Web项目中可用
Comment
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果