Tomcat的目录结构
- /bin — 存放各种平台下用于启动和停止Tomcat的脚本文件
- /conf — 存放Tomcat服务器的各种配置文件
- /lib — 存放Tomcat服务器所需的各种JAR文件
- /logs — 存放Tomcat的日志文件
- /temp — Tomcat运行时用于存放临时文件
- /webapps — 当发布Web应用时,默认情况下回将Web应用的文件存放于此目录中
- /work — Tomcat把JSP生成的Servlet防御此目录下
配置Tomcat端口
- 默认端口 8080
- 通过配置文件 server.xml 修改 Tomcat 端口号
<Connector port = "8080" // 端口号
protocol = "HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
启用Tomcat
- 启用Tomcat
- bin\startup.bat
- 访问 http://localhost:8080查看Tomcat主页
- 停止Tomcat
- bin\shutdown.bat
- 部署静态网站
部署Web应用程序
- 生成War包
- 直接拷贝Web跟目录下所有文件
JSP(java server pages)
- 运行在服务器端的Java页面
- 使用HTML嵌套Java代码实现
jsp执行过程
- 翻译**_jsp.java
- 编译**_jsp.class
- 执行
Web程序常见错误
- 404错误—找不到访问的页面或资源
- 运行时,url输入错误
- 将页面放在WEB-INF下
- 外部启动Tomcat,未部署项目
- 500错误—JSP页面代码错误
- JSP页面代码错误
- 页面无法显示
- Tomcat没有启动
获取表单提交数据
- 请求对象:request
- public String getParameter (String name)
<input type="text" name="userName">
String userName = request.getParameter("userName");
get与post区别
- get参数出现在URL中,有长度先限制,安全性低,URL可传播
- post参数不会出现在URL中,无长度限制,安全性高,URL不可传播
获取同名的多个参数
String[] maillds = request.getParameterValues("mailld");
if(maillds!=null && maillds.length!=0){
// 循环访问的(name=mailds)表单提交数据
}
request对象常用方法
- String getParameter(String name)– 根据表单组件名称获取提交数据
- String[] getParameterValues(String name)–获取表单组件对应多个值得请求数据
- void setCharacterEncoding(String charset)–指定每个请求的代码
- RequestDispatcher getRequestDispatcher(String path)–返回一个RequestDispatcher对象,该对象的forward()方法用于转发请求
内置对象 (重要)
- JSP已经准备好的,可以直接使用的对象
- 请求对象:request
- 输出对象:out
- 响应对象:response
- 应用程序对象:application
- 回话对象:session
- 页面上下文对象:pageContext
- 页面对象:page
- 配置对象:config
- 异常对象:exception
设置编码格式
- post 设置字符集
- post 设置请求编码格式
- request.setCharacterEncoding(“UTF-8”);
- post 设置响应编码格式
- response.setCharacterEncoding(“UTF-8”);
- 如果没有配置tomcat则需要做下列操作
- <%@ page language=”java” contentType=”text/html; charset=utf-8″ %>
- GET提交方式下面编码问题
- 找到tomcat安装目录
- 打开\conf\server.xml
- 找到端口位置
- 在端口设置 ‘/>’ 前面添加 useBodyEncodingForURI=”true”
在请求中存取属性
- 在请求中保存属性
public void setAttribute(String name, Object o)
request.setAttribute("mess","注册失败");
- 在属性中获取属性
public Object getAttribute(String name)
- 注意
- 在使用属性值的时候要做非空判断,否则会出现空指针异常
- 它的返回值类型是Object类型,需要做数据类型的转换
转发与重定向
- 转发
- RequestDispatcher对象
- forward()方法
语法
request.getRequestDispatcher("url").forward(request,response)
<jsp:forward page="url" />
- 重定向
- 将用户请求重新定位到一个新的URL
语法
response.sendRedirect("url")
转发与重定向的区别
- 转发URL不会发生变化,不会重新向服务器发送请求,会携带请求,目标URL仅本Web应用
- 重定向URL会发生变化,会重新向服务器发送请求,不会携带请求,目标URL为任意URL
- 重定向是客户端行为,转发的服务器行为
使用session保存用户名
- 使用会话对象session实现
- 一个会话就是浏览器与服务器之间的一次通话
- 会话可以在多次请求中保存和使用数据
public void setAttribute(String name, Object value);
// 用法:session.setAttribute("userName", "张三丰");
public Object getAttribute(String name);
// 用法:String userName = (String)session.getAttribute("userName");
session的工作方式
- 每个session都有一个唯一的sessionid
- sessiongetId();
- public String getid();
- 会话的清除和过期
- 程序主动清除session数据
- 设置会话失效:session.invalidate();
- 移除会话的一个属性
public void removeAttribute(String name);
// 用法:session.removeAttribute("userName")
- 服务器主动清除长时间没有再次发送请求的session
- 设置会话的过期时间
// 方法一
public void setMaxinactiveInterval(int interval); // 这边的单位指interval秒
// 方法二
// 在web.xml下面配置
<session-config>
<session-timeout>30</session-timeout>// 这边的单位指30分钟
</session-config>