session问题和JSP
一、Session开发中遇到的问题
1、内存中的Session非常多,怎么办?
2、用户在购物中。服务器停掉了该web应用(或者重新启动了),那么用户购物车中的东西怎么办?
二、解决办法:将内存中的所有session进行持久化
三、何时session会被搁置(具体是根据服务器的实现定的。对用户来说是完全透明的)
1、当服务器停止当前web应用
2、内存中的session对象太多
3、session长时间没有活动(并没有被销毁)
四、何时会被激活
1、当前web应用又启动了
2、用户又开始使用了(鼠标键盘又活动了)
五、JSP
1、JSP实际上就是Servlet,他是由容器翻译成Servlet源文件,再编译,用户看到的是servelt的响应结果
六、JSP语法
1、JSP模板:JSP页面中的HTML都是模板代码
2、JSP表达式:
2.1作用:将程序数据输出到客户端
2.2语法:<%=变量或表达式%> 表达式后面不能有分号
3、Jsp脚本:
3.1作用:在JSP中编写Java代码
3.2语法:<%
第一行java代码;
第二行java代码;
%>
4、JSP声明:
4.1作用:声明中的代码会出现在翻译后的Servlet的_jspService()外面,即为jsp对应的Servlet声明成员变量和成员方法。
4.2语法:<%!
java声明
%>
5、注释
4.2作用:注释的代码不会被翻译到Servlet中
4.3语法:<%–这是注释–%>(与HTML中的<!–HTML注释–>是完全不同,HTML注释对java脚本不起作用)
六、JSP指令
Note:
更改MyEclipse提供的默认JSP模板。查找Servlet.java所在的位置,再打开jsp文件夹,修改jsp.vtl和JSPMetaTags.vtl即可(注意备份)
1、作用:指令并不产生任何页面输出。他只是通知JSP引擎(Tomcat)如何来对待该JSP文件,也就是说,指令给容器用的。
2、常用指令:
声明方式:<%@ 指令名称 属性名=”值” 。。。。%>
多个属性可以写在一个指令中,也可以分开来写
2.1page指令
属性
a、language:指示该JSP页面所使用的脚本语言。目前只能是JAVA
b、extends:指示该JSP生成的Servlet继承的父类是谁。大家不要改
*c、import:在JSP中java脚本中需要用的类,导入该类
如果导入多个类,比如java.util.List 和java.util.ArrayList
<%@page import=”java.util.List,java.util.ArrayList”%>
或者
<%@page import=”java.util.List”%>
<%@page import=”java.util.ArrayList”%>
JSP引擎会自动导入下面的包:
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;//JSP的包
*d:session:true|false,默认为true,作用就是是否创建session对象。true时会创建session对象
e:buffer:jsp输出的缓存。none,表示不要缓存;8kb,这是默认值,一般情况不需要修改,或者指定大小的缓存,单位是kb。
f:autoFlush:缓存满后自动刷新。true|false,默认是true
g:isThreadSafe:该JSP是否是线程安全的。true|false
默认值是true:不安全的
false:线程安全的
该属性实际上就是指示JSP对应的Servlet类是否实现SingleThreadModel接口
*h:errorPage:指示错误页面是谁。如果路径以”/”开头,并不代表应用名称
也可以通过web。xml配置全局错误页面
<error-page>
<!– 异常类型 –>
<exception-type>java.lang.Throwable</exception-type>
<location>/errors/error.jsp</location>
</error-page>
<error-page>
<!– 针对响应错误码 –>
<error-code>404</error-code>
<location>/errors/404.jsp</location>
</error-page>
errorPage属性优先于web.xml中配置的错误页面
*i:isErrorPage:true|false(默认值),当前页面是否是错误处理页面。实际上是指对应的Servlet中加不加入Exception对象。
*contentType=”text/html;charset=UTF-8″:指示页面显示的MIME类型和编码。(给客户端)
*pageEncoding=”UTF-8″:告知引擎用什么编码来翻译(serlvet)该JSP文件
*isELIgnored=true|false:是否忽略EL表达式。true是忽略,false不会略
2.2include指令
静态包含
2.3taglib指令
七、9大隐式对象
1、request:HttpServletRequest
2、response:HttpServletResponse
3、config:ServletConfig
4、application:ServletContext
5、exception:异常对象(isErrorPage必须为true)
6、session:HttpSession(session=true)
7、page:this,代表当前Servlet对象
*8、out:JspWriter(作用等同于PrintWriter)输出对象
*9、pageContext:PageContext对象
八、PageContext对象
1、public void setAttribute(java.lang.String?name,java.lang.Object?value)
public java.lang.Object?getAttribute(java.lang.String?name)
public void?removeAttribute(java.lang.String?name)
针对page范围的域对象绑定、删除和获取
2、可以操纵其它域对象
public java.lang.Object?getAttribute(java.lang.String?name,int?scope)
public void setAttribute(java.lang.String?name, java.lang.Object?value,int?scope)
public void?removeAttribute(java.lang.String?name,int?scope)
3、findAttribute:依次从page request session application范围内搜寻指定的参数
session问题和JSP的更多相关文章
- JSP三大常用对象request、response、session
1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求, 然后做出响应.它是HttpServletRequest类的实例. 序号方法说明 objectgetA ...
- JSP(5)—Session的创建以及简单使用
页面: 1.案例 <body> <!-- 把书的信息以Cookie方式传回给浏览器,删除一个Cookie 1.确定要被删除的Cookie是以ATGUIGU_BOOK_开头的cooki ...
- JSP(3)—Cookie和Session
HTTP是一个无状态的协议,web服务器无法分辨出那些请求是同一个浏览器发出的,浏览器每一次请求都是孤立的 即使HTTP1.1支持持续链接,但当用户有一段时间没有请求时,连接也会关闭. 如何实现网上的 ...
- JSP内置对象——session
sessionsession表示客户端与服务器的一次会话Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所进过的这段时间,也就是用户浏览这个网站所花费的时间从上述定义中可以看 ...
- HTTP Session、Cookie机制详解
一.什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息. ...
- [转载]深入理解HTTP Session
深入理解HTTP Session session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的 ...
- JSP内置对象及常用方法
jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...
- Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 【转】Cookie和Session区别和联系详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
随机推荐
- var_export函数的使用方法
var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码.var_export必须返回合法的php代码, 也就是 ...
- Codeforces Round #276 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/485 A题.Factory 模拟.判断是否出现循环,如果出现,肯定不可能. 代码: #include<cstdio> ...
- Managing TCP Connections in Dynamic Spectrum Access Based Wireless LANs
2010年IEEE Secon的一篇文章.当然了,应该是之前就写好了,发表过,还是直接投到Secon了呢?直接投的吧,Secon不接受已发表过的吧. 本文的着笔点:有线网与DSAN(启用了DSA特性的 ...
- hdu 3339 In Action
http://acm.hdu.edu.cn/showproblem.php?pid=3339 这道题就是dijkstra+01背包,先求一遍最短路,再用01背包求. #include <cstd ...
- ASP.NET MVC3快速入门——第四节、添加一个模型
在本节中我们将追加一些类来管理数据库中的电影.这些类将成为我们的MVC应用程序中的“模型”部分.我们将使用一个.NET Framework的被称之为“Entiry Framework”的数据访问技术来 ...
- Android得到控件在屏幕中的坐标
getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWi ...
- Android-PullToRefresh 使用心得
目前下拉刷新已经满大街都是,在自己的应用如果不使用这个模式的话,出门都不好意思和人家打招呼,该文章就是简单探讨下针对于 github 上的这个开源项目的使用心得. 为什么是它?因为在 stackove ...
- mybatis和hibernate对比
Hibernate是一个数据库表和java对象之间完全映射的框架,java开发人员直接对java对象操作,而不对数据库表进行操作: Mybatis是对SQL语句和java对象进行映射,仍需要开发人员编 ...
- MicrosoftSQLServer中的锁模式
在SQL Server数据库中加锁时,除了可以对不同的资源加锁,还可以使用不同程度的加锁方式,即锁有多种模式,SQL Server中锁模式包括: 1.共享锁 SQL Server中,共享锁用于所有的只 ...
- HDU 1074 Doing Homework (状态压缩 DP)
题目大意: 有 n 项作业需要完成,每项作业有上交的期限和需完成的天数,若某项作业晚交一天则扣一分.输入每项作业时包括三部分,作业名称,上交期限,完成所需要的天数.求出完成所有作业时所扣掉的分数最少, ...