J2EE
前言
熟悉JAVA语法很久后,迟迟才开始学习JSP。而学习JSP时,却只学了基本的用法就去学Struts和Hibernate,以致对JSP掌握得很不够。后来发现所学习的Struts框架实际上是“包装”了的JSP。所以,我在学习框架的时候也回头看看JSP。
以后应该不会再去专门学习JSP了。现在把一些JSP的相关知识总结下,记录下来,以防来日忘了。
说明:以下所描述的环境是jdk1.5、tomcat5.5、 jsp2.0、 servlet2.4、JSTL1.1.2
一、基本配置
基本的重要的配置在web.xml 文件中。
1、Jsp属性组
<jsp-property-group> <url-pattern>/pages/*</url-pattern> <el-ignore>true</el-ignore> <page-encoding>UTF-8</page-encoding> <include-prelude>/include/header.jspf</include-prelude> <include-coda>/include/copyright.jspf</include-coda> </jsp-property-group> 这个设置可以指定页面编码,页头页脚等等。
设置 <page-encoding>UTF-8</page-encoding> 的好处是不用在每个页面像这样指定编码:<%@page contentType="html/text;charset=UTF-8" %>
而设置 <include-prelude>/include/header.jspf</include-prelude> 使得每个页面都在头部包含header.jspf文件(通常把对标签的包含放在这里)。
2、数据库资源的引用
<resource-ref> <description>CourseDesign JDNI datasource</description> <res-ref-name>jdbc/test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 前提是要在TOMCAT的中配置
<Context path="/Course" docBase="Course" debug="0" crosscontext="true" reloadable="true"> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123456" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8" /> </Context> 在程序中可以这样获取连接
public static Connection getConnection() ...{ Connection conn=null; try ...{ Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/test"); conn = ds.getConnection(); }catch(Exception e)...{ } return conn; } 3、过滤器
一般来说,字符编码的处理,我们会写一个过滤器。这个过滤器的JAVA类在TOMCAT的例子中有提供,可以按需来更改再拿来用。只要在配置文件中设置:
<filter-name>setCharacterEncoding</filter-name> <filter-class>powerwind.filter.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncoding</filter-name> <url-pattern>/pages/*</url-pattern> </filter-mapping> 4、标签的URI
JSTL是个东西,里面提供了很好用的标签(Tag),但也不一定满足我们的要求,就自己写标签了。把 *.tld 文件直接放到WEB-INF下,在自己定义的tld文件中加上<uri>元素,如:<uri>http://powerwind/course</uri> 。
5、日志
只用过log4j这个日志包。首先是配置文件 log4j.properties (比较完整的配置,应根据情况选择):
log4j.rootLogger = DEBUG,INFO, A1, A2,A3 log4j.appender.A1 = org.apache.log4j.ConsoleAppender log4j.appender.A1.layout = org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern = %4p [%t] (%F:%L) - %m%n log4j.appender.A2 = org.apache.log4j.RollingFileAppender log4j.appender.A2.File =../../log/test.log log4j.appender.A2.MaxFileSize = 1KB log4j.appender.A2.MaxBackupIndex = 3 log4j.appender.A2.layout = org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender log4j.appender.A3.URL= jdbc:mysql://localhost:3306/log4jTest log4j.appender.A3.driver= com.mysql.jdbc.Driver log4j.appender.A3.user= root log4j.appender.A3.password= 123456 log4j.appender.A3.layout = org.apache.log4j.PatternLayout log4j.appender.A3.layout.ConversionPattern = INSERT INTO log4j (createDate, thread, level, class, message) values('%d', '%t', '%-5p', '%c', '%m')
|