一、B/S 结构 Tomcat服务器
B/S 浏览器服务
C/S 客户端和浏览
Tomcat 目录结构(安装版 解压版) Tomcat6.0(1.5 1.6) 7.0(1.7), 8.0(1.7)
bin : 批处理文件 startup shutdown
conf:服务器的配置文件 ,改端口号 和 设置服务器的编码(URIEncoding="GBK") 都在 server.xml中
对于页面URL传参(get方式提交)时,出现中文乱码时,解决办法有两种
1、统一设置服务器的编码格式:server.xml中设置 URIEncoding="GBK"
2、手动编码:
String uname= request.getParamter("uname");//张三
uname=new String(uname.getBytes("ISO-8859-1"),"GBK");
对于表单提交(post)提交:
1、设置请求的编码格式 ,同时表单的提交 method="post"
request.setCharacterEncoder("UTF-8");
lib: 存放jar目录
logs:存放项目日志
temp: 临时文件
webapps:发布的项目(可以发布多个)
work: 缓存文件 jsp转译 编译之后的java文件 class文件
二、JSP
1、JSP的组成
指令:<%@ %> page language import contenttype isErrorPage errorPage
include file
taglib uri prefix
小脚本 <% %> java代码 (_jspService)
声明 <%! %> 变量或方法
表达式 <%= %> 表达式
HTML
动作 : 6大动作
useBean 使用指定的javabean
setProperty 设置bean的属性的值
getProperty 获取bean的属性的值
param 传参
forward 页面之间转发
include page=""
include指令 :静态包含, 转译之前将两个页面合成一个页面 变量不允许重复 ,最后转译之后一个页面
include动作: 动态包含, 编译之后动态加载另一个页面 ,最后依然是两个页面
注释 <%-- --%>
2、JSP的内置对象
输入输出对象: request response out
作用域通信对象 :pageContext , (request) ,session ,application (thin.getServletContext)
Servlet配置对象: config,page
错误对象 :Exception (需要设置 isErrorPage=true)
3、一些对象的常用方法
request请求对象 : 设置编码格式 setCharacterEncoder()
获取表单请求/URL请求 getParamter
获取/设置 作用域的值 :getAttributer(“key”) setAttributer("key",value) value是Object
获取Cookies getCookies
response 响应对象: 页面跳转 sendRedirect
获取输出流 getWriter
设置编码格式 setCharacterEncoder() setContentType
添加Cookies addCookie
session对象
getAttributer(“key”) setAttributer("key",value)
获取时间 setMaxInter。。。
不同的表现方式 :
getParamter("uname") ==${param.uname}
getAtrribute("uname") == ${uname}
--------------------------Servlet ---------------------------------------------------
1、什么是Servlet
web层组件,由Java编写,可以处理客户端请求和服务端响应的 Web应用程序
2、如何创建Servlet
继承HttpServlet ,(实现Servlet接口)
重写 doGet doPost ,或service
配置 web.xml
访问 url-parrter 中的配置
3、Servlet的核心API
ServletConfig 配置对象,初始化一些信息
ServletContext 上下文容器
ServletRequest 请求 HttpServletRequest
ServletResponse 响应 HttpServletResponse
Servlet接口
类:GeniericServlet
HttpServlet
4Servlet生命周期
加载 ; Servlet容器
初始化: init方法
服务 service
销毁 destroy
不可用 gc回收
5、转发和重定向
JSP 9大隐士对象(内置对象)
1、什么是隐士对象:
Web容器加载一组对象,这些对象不和其他Java对象new出来, 可以之间在JSP中是的对象
9个内置对象属于jsp的关键字
2、分类
输入输出对象 request、 response 、 out
作用域通信对象 pageContext、 session 、application 、(request)
Servlet对象 page 、config
错误对象 exception
客户端的 发送请求 给 服务器 request(输入对象)
服务端 处理响应 给 客户端 response 、out(输出对象)
3、转发和重定向区别
转发:request 重定向:response
转发:服务器内部的跳转 重定向: 客户端重新发送一次请求
转发:地址栏不发生改变 重定向: 地址栏会发生改变
转发:一次请求 重定向: 两次请求
4、 4个作用域通信对象
对象 范围
pageContext 当前页面
request 一次请求
session 一次会话 (多次请求)
application 整个应用程序
总结: 一般 情况下
转发时 存值 用request
重定向 存值用 session
Servlet中的监听
常用监听有4个
1、ServletContextListener 创建或销毁Servlet上下时 需要触发的动作
2、ServletContextAttributerListener 添加,删除,替换属性时,需要触发的动作
3、HttpSessoinListener 创建或销毁session时 触发的动作
4、HttpSessionAttributerListener 添加,删除,修改会话中属性时 ,需要触发的动作
如何实现监听
会话跟踪
什么是会话跟踪:
当客户端请求服务器时,第一次请求会记录客户端的信息,以便于下次再次访问时自动识别当前登录状态
4种会话跟踪技术
1、用户授权
2、隐藏表单域
3、URL重写 (地址栏可以传递参数 )
4、Cookie