1.request.getContextPath()详解

<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。

但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">

2.<meta http-equiv="refresh" content="0; url=">什么意思?

页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里
一般也用在实时性很强的应用中,需要定期刷新的
如新闻页面,论坛等,不过一般不会用这个,都用新的技术比如ajax等

<meta http-equiv="refresh" content="0; url=">'经过一段时间转到另外某个页面
content="0;URL=",这里0表示没有延时,直接跳转到后面的URL;把0改成1,则延时1秒后跳转。

网页自动计时跳转
这个页面跳转的好处在于不需要JS调用,直接在html文件头里加入
<meta http-equiv="refresh[刷新-这里指定动作]" content="5[这里是时间];url=/article[这里是跳转的URL]">
当某个页面需要自动跳转的时候就要用到这个代码,比如一般的网站广告页面打开几秒后自动跳转到另外一个页面去就是用这个代码实现的(当然用js

也是可以实现的)

3.LOG4J.PROPERTIES配置详解
一、Log4j配置

第一步:加入log4j-1.2.8.jar到lib下。

第二步:在CLASSPATH下建立log4j.properties。内容如下:

放在src下的话就不用配置 否则得去web.xml里面配置一个Listener

### set log levels ###
log4j.rootLogger = debug , stdout , D , E

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

4.struts.properties配置详解
这个文件是struts2框架的全局属性文件,也是自动加载的文件。该文件包含了系列的key-value对。该文件完全可以配置在struts.xml文件中,使用

constant元素。

5.全局类型转换器xwork-conversion.properties
注册名的文件格式:xwork-conversion.properties文件该文件也是properties文件,其内容也是由”复合类型=对应的类型转换器类”项组成的。
以下是xwork-conversion.properties文件内容:
#指定所有redarmy.user.User类的类型转换器为redarmy.user.UserConverter
redarmy.user.User=redarmy.user.UserConverter
注意:xwork-conversion.properties文件必须为class文件夹下即在src下面创建

6.OpenSessionInViewFilter是用来处理懒加载异常的。

懒加载异常的意思的就是:还用不到的东西,就先不加载,等需要的时候再来加载。
所以懒加载对性能有一定的提升,但是,这也会出现一些问题,一般来说,事务开始的时候Session就被获取,事务结束的时候Session就会被关闭。所以懒加载会出现Session已关闭,却还是去调用Session,从而报Session为空的错误。
据我所知道解决这个问题的方法有两个:一个就是关闭懒加载异常。(一般不推荐!因为关闭了,就不能使用懒加载的好处了)
另一个方法就是把Session的关闭延后。(推荐使用)
 
在使用第二种方法解决这个问题时,要先了解一下事务、Session等的调用过程:
如:
 
 
因为在显示层的时候要使用到懒加载属性,所以要让Session到显示层调用了懒加载之后在关闭。
 
那么可以把Session的关闭交给Filter或Interceptor,因为很多程序都要用到这个功能,所以有人已经实现了这个功能。
也就是:  org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
只要配置这个Filter就可以了。
如下:
  1. <!-- 防止懒加载异常的过滤器 -->
  2. <filter>
  3. <filter-name>OpenSessionInViewFilter</filter-name>
  4. <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>OpenSessionInViewFilter</filter-name>
  8. <url-pattern>*.action</url-pattern>
  9. </filter-mapping>
不过要注意的一件事!
就是这个OpenSessionInViewFilter  过滤器要配置在Struts配置之前。
不然会无效!!

SSH项目中的困惑之一的更多相关文章

  1. 在SSH项目中实现分页效果

    在实现分页的时候,我使用的是数据库下面的User表,实现的效果是通过分页查询 能够将表中的数据分页显示,点击相关的按钮实现:首页.上一页.下一页.末页的显示 1新建一个dynamic web proj ...

  2. hessian在ssh项目中的配置

    一. 在服务端发布一个web项目 1.创建一个动态的web项目,并导入hessian的jar包 2. 在服务端的crm项目中创建接口 package cn.rodge.crm.service;impo ...

  3. SSH 项目中 使用websocket 实现网页聊天功能

    参考文章  :java使用websocket,并且获取HttpSession,源码分析    http://www.cnblogs.com/zhuxiaojie/p/6238826.html 1.在项 ...

  4. SSH 项目中 用Hibernate底层 简单的封装DAO层

    废话不多少了,主要是使用hibernate的查询方法,自己封装了DAO层,供service来方便使用. 首先:必须要继承的 public class CommonDao extends Hiberna ...

  5. SSH项目中遇到的问题

    1. Struts has detected an unhandled exception: Messages: antlr.collections.AST.getLine()I File: org/ ...

  6. SSH实战 · SSH项目中怎么玩验证码

    大致思路与之前servlet中玩验证码类似,生成随机数,产生干扰线,画到图片上,保存到session中. 本人习惯用的时候专门写一个验证码的action:CheckImgAction. step1: ...

  7. Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用

     1 修改pom.xml,添加依赖文件: <dependency> <groupId>com.whalin</groupId> <artifactId&g ...

  8. SSM&SSH项目中 springmvc 乱码问题解决

    需要在web.xml文件中配置过滤器: <!-- 过滤器 过滤乱码 --> <filter> <filter-name>characterEncodingFilte ...

  9. 在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?

    (1)Struts主要起控制作用,Spring主要起解耦作用,Hibernate主要起操作数据作用. (2)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为 ...

随机推荐

  1. 关于PHP中的 serialize () 和 unserialize () 的使用(即关于PHP中的值与已存储的表示的相互转换)

    有时,我们会碰到这样的数据(字符串) a:3:{i:0;s:44:"/Uploads/images/2017-07-21/5971a9a08ad57.png";i:1;s:44:& ...

  2. 21、整合Druid数据源

    1).引入外部的数据源(Druid) <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependenc ...

  3. vue2中用swiper

    一.安装swiper npm install --save swiper 二.home组件 //home.js <app-banner :listImg="bannerList&quo ...

  4. NodeJS学习日记--VSCode下调试

    在vscode中打开项目文件夹 点击左侧的调试菜单,在打开的页面中点击下拉框并点击添加配置 在弹出框中选择 node.js vscode 会自动在项目文件夹下添加.vscode文件夹,并创建launc ...

  5. android:windowSoftInputMode属性详解 软键盘

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...

  6. Objective-C中,ARC下的 strong和weak指针原理解释

    Objective-C中,ARC下的 strong和weak指针原理解释 提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是& ...

  7. NHibernate学习过程笔记

    NHbernate自动生成数据库的方法: using NHibernate; using NHibernate.Tool.hbm2ddl; namespace Test { public class ...

  8. ARM 汇编指令集 特点5:ARM 多级指令流水线

    1.为增加处理器指令流 的速度,ARM使用多级流水线. 就是举个例子: mov r1,#0 ,这条指令 分几个人做,一个人从存储器取指令,解码指令中用到的寄存器,寄存器运算. 这样三步 :如果一个人做 ...

  9. Spring MVC 框架

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--conf ...

  10. UE4 Navmesh 室内导航设置

    我用的UE版本是4.14.1   系统:win10 64 前不久给样板房里面做了一个扫地机器人,导航设置让我头大了很久,度娘也没有用,最后在谷哥上有所感悟,现在给出本人的设置过程和解决方案. 一开始拖 ...