`
文章列表
在JSP中创建的java bean对象,可以存储在下面几种不同生命周期的容器中: 1. page 当前页面,对应pageContext对象 2. request 当前http请求,对应request对象 3. session 当前的回话,对应session对象 4. application 当前应用,对应application对象   当然,一般情况下,我们不用自己去清除java bean对象,因为系统会根据生命周期来自动清除容器中的对象。 但是,如果因为业务需要,或者尽可能的节省内存开销的话,也可以通过手动清除来尽早清除指定容器中的不用的java bean对象。   清除方 ...
1》首先,说一说为什么要设置html文件的字符集 如果不指定的话,浏览器会使用本地操作系统的字符集,那么,如果你的应用需要支持多国语言的话,就会有问题,比如你的页面里有中文字符,终端用户的本地操作系统的字符集是ISO-8859-1,那么浏览器就会用ISO-8859-1来解码你的html文件。这样就会造成中文乱码。   如果html文件中没有中文字符,但是页面上有表单输入,那么如果录入中文后提交的话,在接下来的画面中也有可能会产生乱码。比如目前的html文件使用的是本地操作系统的ISO-8859-1字符集,你在画面录入中文后提交,迁移到下一个画面的时候(比如是一个JSP文件,request ...
JSP指令包括下面几种:   1.include指令,包含指定的文件内容到当前页面中 <%@ include file="title.jsp"%>   2.page指令,该指令包含的属性较多,下面逐一介绍   2.1 language属性,指定页面中使用的脚本语言种类,目前只支持java <%@ page language="java"%>   2.2 extends属性,用于指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名 <%@ page extends="mypack ...
脚本元素的作用是使JAVA代码可以直接插入到servlet中(JSP文件编译后生成的servlet)。   有下面3中脚本元素:   1》声明标签,插入JAVA代码 <%! int classInstanceVar = 100; %> JSP文件编译后,classInstanceVar 会作为servlet类的成员变量。 int classInstanceVar = 100;   2》 脚本标签,插入JAVA代码 <% int localVar = 50; %>   JSP文件编译后,localVar 会作为servlet类中_jspServic ...
JSP中有两种include方法。   1》 <%@ include file="title.jsp" %> 这种方式属于jsp指令,直接把指定的title.jsp文件的内容插入当前位置,相当于拷贝粘贴。 如果多个jsp页面都include同一个title.jsp,那么相当于在每个页面都拷 ...
1》jsp:setProperty的用法 (1)逐一从request中取出参数,然后设置到名字为user的bean的同名属性中。 <jsp:setProperty name="user" property="*"/>   (2)从request中取出userName参数,然后设置到名字为user的bean的userName属性中。 相当于调用user.setUserName(String userName)方法。 <jsp:setProperty name="user" property="us ...
有几种用法,下面逐一讲解: 1》 <%@page import="MyBean.*"%> <jsp:useBean class="MyBean.TestBean" id="user" scope="session"/>   生成的java代码如下: MyBean.TestBean user = null; synchronized (session) { user = (MyBean.TestBean) _jspx_page_context.ge ...
一.关于tomcat的日志设计,采用了工厂模式,主要的类有下面几个:   org.apache.juli.logging包:   1》Log接口 对外提供的接口,用户使用LogFactory.getLog方法获取的日志对象的抽象。   2》LogFactory类 通过静态的getLog方法,向用户 ...
一般情况下,安装完的Tomcat环境都有一个name为localhost的Host节点:   主机名:localhost web应用主目录:tomcat主目录下的webapps 日志文件存放目录:tomcat主目录下的logs   <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apac ...
使用Tomcat 7缺省的配置,tomcat关闭后重新启动,发现原来的session没有被删掉,用原来的request获取session仍然可以取到。但是并没有配置session持久化。 原因如下: tomcat的conf目录下有一个context.xml,这是所有web应用共享的配置信息。 里面有这么一段话: <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!--        <Manager pathname="" /> -- ...
1.过滤器的主要功能是允许我们在request转给某个资源之前(比如:html文件,servlet,JSP文件,图片文件,excel文件等等)做一些事情,然后在response返回给客户端之前做一些事情。功能上有些类似于防火墙,对入口和出口进行严格控制。 public class MyFilter implements Filter { //tomcat启动,或者context重新加载的时候调用init(先destroy再init) public void init(FilterConfig filterConfig) throws ServletException { Sys ...
下面的代码,不加mys.acquire();和mys.release();的时候,各线程会交替输出。 加上的话,各线程会串行输出,说明信号量机制生效了。 MySemaphore.java interface Semaphore { void acquire(); void release(); } public class MySemaphore implements Semaphore{ private StringBuffer runFlag = new StringBuffer("true"); public void ac ...
  在servlet里面接收到一个请求以后,处理完毕,根据需要可以有几种选择:   1.直接提交response,比如response.getWriter().println();   这个比较简单,而且不怎么使用,毕竟动态生成html不是很好的选择   2.将请求转给其它的资源(比如:forward到jsp,html,servlet)  这个有两种方法可以选择,但是无论哪种方法,都是转发到当前context(web应用)下面: (1)ServletRequest#getRequestDispatcher(String path)方法 request.getRequestDis ...
之前提到调用response.encodeURL(String url)方法的时候,如果客户端支持cookie,那么不做任何处理,直接返回传进去的url,因为jsessionid可以写入cookie中,所以不需要url重写。其实所说的客户端支持cookie并不严谨,因为在客户端支持cookie的情况下,调用response.encodeURL(String url)方法,也会遇到对传进去的url进行重写的情况。那么什么情况下会出现这个问题呢?请看下面:   客户端支持cookie,第一次访问某个servlet,这时servlet接收到的request的cookie中没有jsessionid信 ...
在servlet中,当客户端禁用了cookie的情况下,为了保存jsessionid,我们可以采用URL重写的方式把jsessionid追加在url末尾,这样当客户点击链接的时候,就会随着url把jsessionid一起传给服务端,从而实现session机制。那么如何把jsessionid保存在url中呢?方法就是:   1>创建一个session 2>调用response.encodeURL(String url)方法 3>把返回的url嵌入动态生成的html文中返回客户端   HttpSession session = request.getSession(); ...
Global site tag (gtag.js) - Google Analytics