web学习
来源:互联网 发布:python logging模块 编辑:程序博客网 时间:2024/06/09 05:35
1、web应用(webDemo)文件结构:
<webDemo>-------web应用名称,可以改变
|------WEB-INF
| |
| |---------classes
| |---------lib
| |---------web.xml
|-------<a.jsp>--------存放任意多的JSP页面
//注意:上面的webDemo是web应用所对应文件夹的名字,可以更改;a.jsp是应用下JSP页面的名字,可以修改(还可增加更多的jsp页面).其他文件夹、配置文件都不可以修改。
a.jsp页面内容如下:webDemo\a.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errprPage="" %>
<html>
<head>
<title>欢迎</title>
</head>
<body>欢迎学习Java Web知识</body>
</html>
2、生成页面出现乱码现象解决方案
1)进入Tomcat安装目录,找到conf目录下文件server.xml。在server.xml文件中 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>中添加“ URIEncoding="UTF-8"”,变成 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
2)在获取name的请求参数之前设置下编码方式。
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charSet=utf-8");
3、创建Servlet的两个时机
1)客户端第一次请求某个Servlet时,系统创建该Servlet的实例:大部分的Servlet都是这种Servlet。
2)Web应用启动时立即创建Servlet实例,即load-on-start-up Servlet。
配置load-on-start-up Servlet的Servlet的方式:
在web.xml文件中通过<servlet.../>元素的<load-on-startup../>子元素进行配置。
4、创建ActionListener时添加的包文件:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
5、Filter
( 1)Filter作用:
1)在HttpServletRequest到达之前,拦截客户的HttpServletRequest。
2)根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。
3)在HttpServletResponse到达客户端之前,拦截HttpServletResponse。
4)根据需要检查HttpServletResponse,也可修改HttpServletResponse头和数据
(2)创建一个Filter需要步骤
1)创建Filter处理类。
2)web.xml文件中配置Filter。
配置Filter名,配置Filter拦截URL模式(它与Servlet配置区别,Servlet只配置一个URL,而Filter可以同时拦截多个请求的URL。故在配置Filter的URL模式时通常会使用模式字符串,使得Filter可以拦截多个请求。)
(3)Filter种类
1)用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求。
2)日志Filter:详细记录某些特殊的用户请求。
3)负责解码的Filter:包括对非标准编码的请求解码。
4)能改变XML内容的XSLT Filter等
5)Filter可负责拦截多个请求或响应:一个请求或响应也可被多个Filter拦截。
4、伪静态页面
( 1)实现伪静态:通过Filter拦截所有发向*.html请求,然后按某种规则将请求forward到实际的*.jsp页面。现有的URL Rewrite开源项目为这种思路提供了实现。
(2)利用URL Rewrite实现网站伪静态
(3)实现步骤:
1)创建一个web project暂时取名为:urlrewrite,在WEB-INF文件夹中修改web.xml文件。
web.xml文件为:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置Url Rewrite的Filter --><filter><filter-name>UrlRewriteFilter</filter-name><filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class></filter><!-- 配置Url Rewrite 的Filter拦截所有请求 --><filter-mapping><filter-name>UrlRewriteFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>2)在WEB-INF文件夹下增加urlrewriter.xml文件,内容为:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<!-- 所有配置如下正则表达式的请求 -->
<from>/userinf-(\w*).html</from>from>
<!-- 将被forward到如下JSP页面,其中$1代表上面第一个正则表达式所匹配的字符串 -->
<to type="forward">/userinf.jsp?username=$1</to>
</rule>
</urlrewrite>3)编写自己的jsp文件,取名为userinf.jsp,内容为:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%//获取请求参数String user = request.getParameter("username");%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title> <%=user%>的个人信息 </title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%//此处应该通过数据库读取该用户对应的信息//此处只是模拟,因此简单输出:out.println("现在时间是:" + new java.util.Date() + "<br/>");out.println("用户名: " + user);%></body></html>4)将jar包"urlrewritefilter-4.0.3.jar"包倒入到web工程中,即放到lib文件夹中,直接ctrl+c复制urlrewritefilter-4.0.3.jar文件,再到MyEclipse界面上,点击lib,ctrl+v即可,则在Reference d Liblaries中会显示添加的jar包。5)部署web应用。点击部署(容易忘记)6)开启tomcat7)在浏览器中输入"http://localhost:8080/urlrewrite/userinf-sdhus.html"即应用。
这个链接对应:"http://localhost:8080/urlrewrite/userinf.jsp?username=sdhus".
.
5、Listener监听器
(1)定义Listener实现类。
(2)在web.xml文件中配置Listener
配置:<listener-> <listener-class>lee.GetConnListener</listener-class></listerner>
(3)常用的web事件监听器接口:
1)ServletContextListener:用于监听Web应用的启动和关闭
2)ServletContextAttributeListener: 用于监听ServletContext范围(application)内属性的改变
3)ServletRequestListener:用于监听用户请求。
4)ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变。
5)HttpSessionListener:用于监听用户Session的开始和结束。
6)HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变。
6、通过检查HttpServletRequest可以精确的监控在线用户的状态。思路是:
1)定义一个ServletRequestListener,这个监听器负责监听每个用户请求,当用户请求到达时,系统将用户请求的session ID、用户名、用户IP、正在 访问的资源、访问时间记录下来。
2)启动一条后台线程,这条后台线程每隔一段时间检查上面的每条在线记录,如果某条在线记录的访问时间与当前时间差超过了指定值,将这条在线记录删除即可。这条后台线程应随着Web应用的启动而启动,可考虑使用ServletContextListener来完成。
7、web应用缺少jar包时,需要将缺少的jar包复制到web应用的WEB-INF\lib路径下。
0 0
- web学习
- web学习
- Web学习
- Web学习
- Web学习
- web学习
- web学习
- web学习
- web学习
- web学习
- web学习
- web学习
- 学习web
- web学习
- web学习
- web学习
- 『WEB』web学习
- 【Web】Web监听器基础学习
- PL/SQL 数据类型和变量 -- BOOLEAN
- 挑剔的人生--迎接2015
- Java基础学习笔记1
- Mysql中关于Could not retrieve transation read-only status server
- Unity3D学习笔记之三Prefab组件的使用
- web学习
- 内核驱动框架
- jsp学习
- 数据结构基础(1) --Swap & Bubble-Sort & Select-Sort
- android 线性布局加载的效率不如相对布局
- gdb调试python运行中的进程
- 如何在cmd中进入某个目录
- 雷观(十七):想拉人入伙,合伙创业,请拿出一点认真的态度
- 关于软件项目工作量估算的若干问题