(八)tomcat与九大内置对象
tomcat
B/S
浏览器/服务器
请求:request
响应: response
C/S:
客户端/服务器
URL:
网址
URI:
范围包括url
http
https: 更安全的http协议
tomcat常用版本:
tomcat6,tomcat7
安装要求:
最好不要放在中文文件夹,文件夹名有空格或
特殊字符
apache-tomcat-7.0.41.rar
解压当前文件夹,重命名文件夹为tomcat7
启动:
/bin/startup.bat
需要jdk环境
新建JAVA_HOME 变量值:jdk路径
在path里添加:%JAVA_HOME%\bin;
tomcat目录结构:
/bin 存放脚本文件
/conf 存放配置文件
/lib jar文件
/logs 存放日志文件
/temp 临时文件
/webapps 发布web应用
/work 存放jsp生成的servlet程序
访问tomcat服务器:
TCP,默认端口是8080
查看端口占用情况:
netstat -ano
查找占用端口的pid,在任务管理器找到pid
对应的进程
修改tomcat默认端口:
conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置tomcat用户名和密码:
conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>
部署静态网站:
将web应用(网站)部署到
webapps下
tomcat7集成到myeclipse中:
myeclipse 将web工程生成war文件:
jsp:
Java server page
运行在服务器端的Java页面
使用HTML嵌套Java代码实现
新建一个jsp:
jsp的三个编码都要设为UTF-8
jsp页面写Java代码:
<%
java代码...
%>
jsp的注释:
ctrl+shift+/
<%--
--%>
jsp声明变量/全局变量
<%!
int i=1;
%>
*jsp的执行原理:
index.jsp--->index_jsp.java-->index_jsp.class
客户端发送请求访问web服务器下jsp页面,
jsp页面会自动转换为java文件(servlet程序)
,再编译成class文件,
最终被执行响应到浏览器显示
web程序常见错误
404:找不到页面
500:jsp页面/servlet 报错
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
常见错误处理:
404
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
500
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/500.jsp</location>
</error-page>
jsp常用标签
*静态包含和动态包含
a.静态包含<%@include file="two.jsp" %>
先包含再处理
b.动态包含
<jsp:include page="two.jsp"></jsp:include>
先处理再包含
第二个页面没有逻辑处理,尽量用静态包含,
比如一些公共的页面,用静态包含引入
jsp转发标签
<jsp: forward>
jsp实现数据传递
九大内置对象:
out,request,response
session,application,page
pageContext,config,exception
接收表单提交的数据:
HttpServletRequest类
request.getParameter();
request.getParameterValues();
中文乱码问题
post提交方式:
request.setCharacterEncoding("UTF-8");
get提交方式:
治标(对字符串进行转码):
String getUname = new String(uname.getBytes("ISO-8859-1"),"UTF-8");
治本方法:
修改tomcat的server.xml
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
请求中保存属性:
request.setAttribute(String name,Object obj);
request.getRequestDispatcher(url).forward(request,response);
案例:
login.jsp
dologin.jsp 处理登录
判断用户名 admin ,密码 bdqn
登录成功跳转到首页index.jsp,
显示一条消息:登录成功!
登录失败:
跳回登录页面,显示一条消息
用户名或密码错误!
转发和重定向
转发:
request.getRequestDispatcher(url).forward(request, response);
重定向:
response.sendRedirect("url")
转发和重定向的区别:
转发(服务器端行为):
url不变
一次请求
携带请求
目标url仅当前web应用
重定向(客户端行为):
url改变
两次请求
不携带请求
目标url任意的url
会话技术
1.cookie
Cookie是客户端技术
浏览器对一个网站最多支持20个cookie
所有的cookie总和不超过300个
cookie的大小限定为4KB
cookie目前不支持中文
新建一个cookie?
a.创建cookie
Cookie mycookie = new Cookie(key,value);
b.设置path
浏览器将此 cookie 返回到的服务器上的路径。
cookie 对于服务器上的所有子路径都是可见的。
c、设置最大存活时间
public void setMaxAge(int expiry)
设置 cookie 的最大生存时间,以秒为单位。
案例:
上一次访问时间:
记住用户名和密码:
下一次访问登录页面自动填写
用户名和密码
2.session
服务器端行为
为每个访问的用户,分配一个独立的session
session默认存活时间是30分钟
*session 原理:
底层还是cookie,cookie的name是JSESSIONID
value是httpsession对象的ID值
该cookie存活时间是浏览器进程
path 是 当前web应用的path
在web.xml配置session的过期时间(单位分钟)
session.setMaxInactiveInterval();//单位为秒
程序注销session
session.invalidate();
session.removeAttribute();//清除对应的session
application
作用域是当前web项目
session的作用域是一个会话
request的作用域是当前请求
转发:
跳转本web项目的其他URL,尽量用转发
重定向:
一般用于跳转到首页,跳转到
其他的URL
tomcat
B/S
浏览器/服务器
请求:request
响应: response
C/S:
客户端/服务器
URL:
网址
URI:
范围包括url
http
https: 更安全的http协议
tomcat常用版本:
tomcat6,tomcat7
安装要求:
最好不要放在中文文件夹,文件夹名有空格或
特殊字符
apache-tomcat-7.0.41.rar
解压当前文件夹,重命名文件夹为tomcat7
启动:
/bin/startup.bat
需要jdk环境
新建JAVA_HOME 变量值:jdk路径
在path里添加:%JAVA_HOME%\bin;
tomcat目录结构:
/bin 存放脚本文件
/conf 存放配置文件
/lib jar文件
/logs 存放日志文件
/temp 临时文件
/webapps 发布web应用
/work 存放jsp生成的servlet程序
访问tomcat服务器:
TCP,默认端口是8080
查看端口占用情况:
netstat -ano
查找占用端口的pid,在任务管理器找到pid
对应的进程
修改tomcat默认端口:
conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置tomcat用户名和密码:
conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>
部署静态网站:
将web应用(网站)部署到
webapps下
tomcat7集成到myeclipse中:
myeclipse 将web工程生成war文件:
jsp:
Java server page
运行在服务器端的Java页面
使用HTML嵌套Java代码实现
新建一个jsp:
jsp的三个编码都要设为UTF-8
jsp页面写Java代码:
<%
java代码...
%>
jsp的注释:
ctrl+shift+/
<%--
--%>
jsp声明变量/全局变量
<%!
int i=1;
%>
*jsp的执行原理:
index.jsp--->index_jsp.java-->index_jsp.class
客户端发送请求访问web服务器下jsp页面,
jsp页面会自动转换为java文件(servlet程序)
,再编译成class文件,
最终被执行响应到浏览器显示
web程序常见错误
404:找不到页面
500:jsp页面/servlet 报错
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
常见错误处理:
404
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
500
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/500.jsp</location>
</error-page>
jsp常用标签
*静态包含和动态包含
a.静态包含<%@include file="two.jsp" %>
先包含再处理
b.动态包含
<jsp:include page="two.jsp"></jsp:include>
先处理再包含
第二个页面没有逻辑处理,尽量用静态包含,
比如一些公共的页面,用静态包含引入
jsp转发标签
<jsp: forward>
jsp实现数据传递
九大内置对象:
out,request,response
session,application,page
pageContext,config,exception
接收表单提交的数据:
HttpServletRequest类
request.getParameter();
request.getParameterValues();
中文乱码问题
post提交方式:
request.setCharacterEncoding("UTF-8");
get提交方式:
治标(对字符串进行转码):
String getUname = new String(uname.getBytes("ISO-8859-1"),"UTF-8");
治本方法:
修改tomcat的server.xml
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
请求中保存属性:
request.setAttribute(String name,Object obj);
request.getRequestDispatcher(url).forward(request,response);
案例:
login.jsp
dologin.jsp 处理登录
判断用户名 admin ,密码 bdqn
登录成功跳转到首页index.jsp,
显示一条消息:登录成功!
登录失败:
跳回登录页面,显示一条消息
用户名或密码错误!
转发和重定向
转发:
request.getRequestDispatcher(url).forward(request, response);
重定向:
response.sendRedirect("url")
转发和重定向的区别:
转发(服务器端行为):
url不变
一次请求
携带请求
目标url仅当前web应用
重定向(客户端行为):
url改变
两次请求
不携带请求
目标url任意的url
会话技术
1.cookie
Cookie是客户端技术
浏览器对一个网站最多支持20个cookie
所有的cookie总和不超过300个
cookie的大小限定为4KB
cookie目前不支持中文
新建一个cookie?
a.创建cookie
Cookie mycookie = new Cookie(key,value);
b.设置path
浏览器将此 cookie 返回到的服务器上的路径。
cookie 对于服务器上的所有子路径都是可见的。
c、设置最大存活时间
public void setMaxAge(int expiry)
设置 cookie 的最大生存时间,以秒为单位。
案例:
上一次访问时间:
记住用户名和密码:
下一次访问登录页面自动填写
用户名和密码
2.session
服务器端行为
为每个访问的用户,分配一个独立的session
session默认存活时间是30分钟
*session 原理:
底层还是cookie,cookie的name是JSESSIONID
value是httpsession对象的ID值
该cookie存活时间是浏览器进程
path 是 当前web应用的path
在web.xml配置session的过期时间(单位分钟)
session.setMaxInactiveInterval();//单位为秒
程序注销session
session.invalidate();
session.removeAttribute();//清除对应的session
application
作用域是当前web项目
session的作用域是一个会话
request的作用域是当前请求
转发:
跳转本web项目的其他URL,尽量用转发
重定向:
一般用于跳转到首页,跳转到
其他的URL