`

jsp学习经验总结

阅读更多

一、基本配置

  基本的重要的配置在web.xml 文件中。

1、Jsp属性组

这个设置可以指定页面编码,页头页脚等等。

设置 UTF-8 的好处是不用在每个页面像这样指定编码

而设置 /include/header.jspf 使得每个页面都在头部包含header.jspf文件(通常把对标签的包含放在这里)。

<jsp-property-group> 
<url-pattern>/pages/*<url-pattern> 
<el-ignore>trueel-ignore> 
<page-encoding>UTF-8<page-encoding> 
<include-prelude>/include/header.jspf<include-prelude> 
<include-coda>/include/copyright.jspf<include-coda> 
</jsp-property-group> 

 

2、数据库资源的引用

 

<resource-ref> <description>CourseDesignJDNIdatasource</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
tpath="/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 ConnectiongetConnection()
{
Connectionconn=null; 
 try {
ContextinitContext=newInitialContext();  ContextenvContext=(Context)initContext.lookup"java:/comp/env");  DataSourceds=(DataSource)envContext.lookup"jdbc/test");  conn=ds.getConnection();  }  catch(Exceptione)...{  }  returnconn;  } 

 

public static Connection getConnection(){
	Connectionconn=null;
	try
	{
		Context initContext=newInitialContext();
		Context envContext=(Context)initContext.lookup("java:/comp/env");
		DataSourceds=(DataSource)envContext.lookup("jdbc/test");
		conn=ds.getConnection();
	}catch(Exceptione)
	{  }
	return conn;  
} 

 

 

3、过滤器

一般来说,字符编码的处理,我们会写一个过滤器。这个过滤器的JAVA类在TOMCAT的例子中有提供,可以按需来更改再拿来用。只要在配置文件中设置:

<filter>
	<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文件中加上元素,如:http://powerwind/course 。

 

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-ddhh: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=INSERTINTO log4j(createDate,thread,level,class,message)values('%d','%t','%-5p','%c','%m') 

 

接着写个Servlet来加载log4j:

 

package jczgost.servlet;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.*;
import javax.servlet.http.*;
public class Log4jInitextendsHttpServlet{
	public void init(ServletConfigconfig) throws ServletException{
		super.init(config);
		String prefix=getServletContext().getRealPath("/");
		String file=getInitParameter("log4j");
		System.out.println("initlog4j...");
		if(file!=null){
			PropertyConfigurator.configure(prefix+file);
	  }else
		{
			PropertyConfigurator.configure(prefix+"log4j.properties");}
		}
} 

 

然后同时要在web.xml下配置:

 

<servlet>
<servlet-name>log4jInit</servlet-name>
<servlet-class>powerwind.servlet.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

 

小型的应用中,我们并不常需要国际化。但是,如果网站要中文版和英文版的话,这个就不错啦。使用时很简单,把资源test_zh_CN.properties文件放到classes目录下,然后用JSTL的fmt标签调用。

 

其中var和scope属性不是必需的。三者结合,就可以实现国际化了。

 

<fmt:setLocale ="zh_CN"scope=”session”/>
<fmt:setBundlebase name="test"scope=”session”var=”hehe”/>
<fmt:message key="login.title" bundle=”${hehe}”scope=”session”/>

 

二、极限与安全

资源放在WEB-INF下是安全的,因为这个目录对于客户端是不存在的。权限控制并不是仅仅这样就可以了。如果只是简单地判断用户是否登录,可用一个过滤器检查Session对象即可。若需要级别控制的话,就在Session中保存级别信息,然后加以判断。

 

三、上传与下载

上传的话,一般使用已有的组件,如commons-fileupload 或者欧莱礼的cos (可能会遇到中文编码的问题)。而下载,比较简单,就自己写了个Servlet。

 

以上只是个示例程序纪录在JSP学习经验中,灵活与方便的做法应该是在Servlet初始化参数()设置下载文件所在目录,当然也可以在页面中设置参数。甚至可以做成一个下载标签,方便使用。

 

 

分享到:
评论

相关推荐

    分享JSP学习经验总结

    分享JSP学习经验总结

    关于JSP的学习经验总结

    分享一些在学习jsp的过程中总结的一些经验

    JSP编程(绝对经典的jsp编程经验总结)

    绝对经典的jsp编程经验总结,各位有志之士可以下载学习一下!相信不会让你失望!

    jsp自己的经验总结

    jsp学习的最近总结,供大家好好参考一下

    java学习经验总结

    java学习经验总结,包含j2se,jsp,servlet ,struts,spring,hibernate等开源框架的使用以及原理

    关于Tomcat和jsp经验总结

    tomcat ,tomcat ,tomcat ,tomcat ,tomcat ,tomcat ,tomcat ,tomcat ,tomcat ,tomcat ,对JSP开发中容易出现的一些错误的总结,有出现错误的截图以及解决方法...分要得不多,只是为了挣点分,也能帮助到初学JSP的学习者。

    JSP_Servlet学习笔记(第2版).pdf

    《JSP & Servlet学习笔记(第2版)》针对Servlet 3.0的新功能全面改版,无论章节架构还是范例程序代码,都做了全面更新,是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、操作、应用或认证考试上...

    JSP&Servlet;学习笔记

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...

    JSP & Servlet学习笔记

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...

    JSP_Servlet学习笔记(第2版)

    JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...

    JSP&Servlet学习笔记.pdf

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。  本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...

    JSP & Servlet学习笔记(第2版)

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...

    7个 JSP小项目源代码和笔记资料汇总 项目总结 开发经验

    7个JSP小项目源代码和笔记资料汇总,正在学习JSP的朋友可不要轻易错过哦,这些小项目的清单如下:  项目01_JSP+JDBC留言管理程序(代码+笔记)  项目02_使用JSP完成简单的登陆程序(代码+笔记)  项目03_JSP+DAO...

    JSP学习经验小结分享

    本文介绍的是JSP的学习经验总结,希望对你有帮助,一起来看。

    Jsp&Servelet 学习笔记

    Jsp&Servelet 学习笔记,总结经验,

    Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结

    开始学习jsp很久了,网上有许多关于jsp整合的例子,但存在着许多问题。 对于Apache+Tomcat+MySQL+jsp+php的整合,针对不同的Tomcat和apache的版本,稍微有些区别。 即使你E文很好,去看Tomcat和Apache的手册,也不...

    kindeditor在jsp中如何使用

    kindeditor在jsp中如何使用。我的经验总结。贡献出来供大家学习,少走弯路。

    JavaEE5学习笔记11-JSF转换器验证器使用经验总结

    JavaEE5学习笔记11-JSF转换器验证器使用经验总结。

Global site tag (gtag.js) - Google Analytics