jsp简单简单总结(或许对在校的童鞋们考前应考有用)
_________________________________________________________________________________________
jsp文件运行过程
(1)代码转化:jsp容器将jsp文件转化成java servlet 文件
(2)编译;jsp容器编译javaServlet文件生成.classwenjian
(3)生成实例:jsp容器加载.class文件创建实例
(4)相应请求:jsp容器调用该实例的请求处理方法处理客户请求,并将相应消息回复给客户
——————————————————————————————————————————————
网站模式
1、(B/S,Brower/Server)基于浏览器--服务器间的应用
2、(C/S,Client/Server)较早,单机应用-->客户--服务器
-----------------------------------------------------------------------------------------
动态网页与静态网页的区别
静态网页:指事先做好、内容固定不变的网页,可以直接被浏览器解释执行
动态网页:当请求到达时,由服务器端程序运行而产生的网页,不能被浏览器直接执行。
网页内容需要实时更新,来自于数据库和用户交互。
-------------------------------------------------------------------------------------------
简述使用javaBean 的好处优点:可以实现代码的重复使用,跨平台性较好。
-------------------------------------------------------------------------------------------
一个完整的会话期指:访问者打开浏览器并连接到服务器开始,访问者关闭浏览器离开该服务器。
jsp文件的组成元素
1、注释。2、脚本元素。3、指令元素。4、动作元素。
----------------------------------------------------------------------------------------
jsp中表单提交的do post()方法和do get()方法有何区别
get方式传值有三种形式:a、在地址栏中直接输入url地址。b、单击网页上的超链接。3、form表单的method属性设置为get
以get方式传值参数直接跟在请求资源的后面,请求资源与参数间用“?”隔开,参数与参数值之间用"="连接,参数与参数间用“&”连接
参数在地址栏中显出,传递数量较少,安全子那个不好
post传值只有一种form表单属性设置为post,参数在地址栏中不可见,较安全且传递数量较大。
--------------------------------------------------------------------------------------------
jsp中的指令; page include taglib
一 page 属性{
1、language 设置当前页面的脚本语言(目前只识别java脚本)
2、import属性主要用于引入外在的类库
3、extends指定jsp转换成servlet后继程的父类
4、session用于指定当前页面是否使用session默认情况为true
5、buffer指定out 对象输出的缓冲区 不常用(注意有三个条满足时才用)
6、autoFlush、指定缓冲区满时是否进行刷新(一般采用默认值)
7、isThreadSate jsp页面的访问是否是线程安全的(设置为true时 可以允许页面被多个用户同时请求)
8、iffo 用于提供当前页面的信息,通过getServletInfo()读取信 息
9、errorPage 当jsp页面执行发生异常时容器将会转向错误处理图页 面,返回给客户端浏览器
10、isErrorPage指定当前页面是否是一个错误处理页面设置为 true时可以通过内置exception获取页面的处理信息
11、contentType指定服务器发送给客户端时的MIME类型和设置编码 问题
12、pageEncoding 用于指定jsp文件本身的编码(如果未设置则采用 conTentType编码)
13、isElgnored 是否忽略El表达式
}————————————————————————————————————————————
二 include 属性
1、<%@ include file="URL"%>此种属于静态包含,将指定的内容映 入到当前页面融合成一个页面统一编译转成servelt
三、taglib 属性(主要在JSTL中使用)
1、uri 指定标记库的uri可以是相对路径也可以是绝对路径
2、prefix 指定标记的前缀
—————————————————————————————————————————————————————————
jsp中的脚本元素
1 声明:用于定义实类变量,方法,及内部类
格式 <%! %>此标记中间的内容转换成servlet后成为其成员变量、或成员方法
2 JSP表达式
格式<%=%>主要将结果返回到客户端(表达式语句后边不带分号)
脚本代码
格式<%%> 此格式较常用主要定义局部变量和方法,转化为servlet后都在service()中体现
————————————————————————————————————————————————————————
动作指令共有20中常用的有9中
1、<jsp:includet page="url"/>
<jsp:includet page="url"></jsp:include>//可以用与传递参数
主要与前面的<%@ include url%>区别此标记是在jsp页面执行过程中将包含的结果插入到当前页面的执行结果中
2、<jsp:forward page="url"/>
<jsp:forward page="url">
<jsp:forward page="url"></jsp:forward>
a 结合<jsp:param name="参数名字" value="参数值"/>使用
3 <jsp:params>中可以嵌套多个<jsp:param>使用0
4、<jsp:plugin type=""/>用于嵌套在客户端运行的java程序目前只有两种applet/bean,有较多属性
5、<jsp:useBean scope="" id="" class=""/>
<jsp:useBean scope="" id="" class=""></jsp:useBean>
"scope"属性用于指定当前对象的作用范围如“page request session appliction”{
Scope各项参数的意义:
page:仅涵盖使用JavaBean的页面
(PageBean.jsp/CounterBean.java)
request:有效范围仅限于使用JavaBean的请求
(RequestBean.jsp/RequestBean2.jsp/CounterBean.java)
session:有效范围在用户整个连接过程中(整个会话阶段均有效)
(SessionBean.jsp/Session2.jsp/CounterBean.java)
application:有效范围涵盖整个应用程序。也就是对整个网站均有效
(Application.jsp/Application2.jsp/CounterBean.java)
}
“id”指当前类所创建的对象
class后跟具体的类(class a= new class())
<jsp:setProperty name="" property="*/bean参数名字" param="表单参数名字" value="具体值">读取javaBean设置的属性值,"name"相当于useBean中的id ,
后面的三个属性可以不同时出现(*可以将参数与bean中的参数一一匹配传值)
<jsp:getProperty>与上面用法相似
————————————————————————————————————
jsp中的注释
<%-- 注释内容 --%>
html中的注释<!-- 注释内容 -->
sql注释 --加注释语句
___________________________________________________________________
简单乱码处理
1、处理“post()”request. setCharacterEncoding("GBK");
2、处理“get()”
String test = new String(request.getParameter("test").getBytes("ISO-8859-1"),"GBK");
或者用<%@ page contentType="text/html;Charset=GBK"%>
3、字符集Charset=GBK第一个字母C大写代替上面的两种写法
————————————————————————————————————————————————————
jsp中的内置对象(共9个)
1、page(不常用)[存活于当前网页中]
2、pageContext代表的是当前页面的上下文,可以控制其他的内置对象
3、request对象为较常用的内置对象主要作用于1、对对象属性的设置和获取2、设置字符编码(setCharacterEncoding())
3、获取请求参数4、获取请求行信息5、获取请求头信息6、获取网络信息[存活于一次请求中]
较常用的方法{
getProtocol():获取请求使用的通信协议,如http/1.1等。
getServletPath():获取请求的JSP页面所在的目录。
getContentLength():获取HTTP请求的长度。
getMethod():获取表单提交信息的方式,如POST或GET。
getHeader(String s):获取请求中头的值。
getHeaderNames():获取头名字的一个枚举。
getHeaders(String s):获取头的全部值的一个枚举。
getRemoteAddr():获取客户的IP地址。
getRemoteHost():获取客户机的名称(如果获取不到,就获取IP地址)。
getServerName():获取服务器的名称。
getServerPort():获取服务器的端口号。
getParameterNames():获取表单提交的信息体部分中name参数值的一个枚举
其它还有获取网络信息的相关方法在P96
}
4、response对象是服务器对客户端响应信息的回复
较常用的方法{
void sendRedirect(String url)
PrintWriter getWriter()
}
5、session对象用于回话跟踪信息可以在客户多个请求中共享[存活于浏览器窗口中]//在用户第一次访问jsp页面时产生
常用方法{
setArttribute()
getAttribuate()i
removeAttribute()
String getid()
long getCreationTime()//对象的创建时间
boolean isNew()//判断是否是新的对象
void invalidate()//强制释放当前对象
}
6、application用于记录整个公用信息可以被更多的用户共享[存活于服务器上经常用于计数器操作]//在WEB服务器启动时产生
7、out对象和config对象
————————————————————————————————————————————————————
jsp中<jsp:forward>(转发)、<sendRedirect(String url)>(重定向表单提交中)、超链接区别
<jsp:forward>属于服务器内部转发不经过客户端速度快【属于同一个请求对象】
<sendRedirect(String url)>何超链接都要经过客户端速度脚面【属于不同的请求对象】
——————————————————————————————————————————————————
Servlet知识点
(1)检测是否已经装载并创建了实例
(2)转载并创建实例对象
(3)servle调用实例对象的init()方法(此方法只被调用一次)
(4)创建一个封装http请求的对象调用service()将请求和相应参数作为对象传进去servlet实例通过请求对象获取请求信息进行处理
通过相应对象进行相应信息回复(此方法可以被多次调用)
(4)卸载Servlet调用destroy()方法
------------------------------------------------------------------------------------------------
jsp中数据库相关知识点
1、较常用的有两种方法1、jdbc--odbc桥接器方法。2、使用各种数据库相对应的驱动包
此处以后者为例(mysql)
对数据库操作主要分为五步
1、加载驱动用Class.forName("com.mysql.jdbc.Driver")方法,驱动语句"com.mysql.jdbc.Driver";
2、创建连接对象
String url="jdbc:mysql://localhost:3306/数据库名"
String user=""
String password=""
Connection conn=DriverManager.getConnection(url,user,password).
3、建立语句对象
Statement stmt=conn.createStatement()//或是创建更高级的预处理语句对象(PreparedStatement ps=conn.prepareStatement("sql"))
4、Statement对象执行SQL语句
ResultSet rs=stmt.executeQuery("sql")//该方法返回ResultSet对象用来封装查询结果
或stmt.executeUpdate("sql")//该方法返回int类型显示受影响的行数执行的sql语句如(insert,update,delete)
对于PreparedStatement来说executeQuery()、executeUpdate()是不需要参数的
5、对数据库的关闭。conn.close()(结果集的关闭,语句对象的关闭)
2、简单的语句对象只执行一次sql语句要执行多次的需要创建多个查询计划,使用PreparedStatement可以解决相关问题
并且还可以防止sql注入。
3、与数据库相关的事务处理
主要指人为的管理事物操作,调用setAutoCommite()方法关闭自动提交,使用commit()和rollback()对事务处理、
_________________________________________________________________________________________
jsp文件运行过程
(1)代码转化:jsp容器将jsp文件转化成java servlet 文件
(2)编译;jsp容器编译javaServlet文件生成.classwenjian
(3)生成实例:jsp容器加载.class文件创建实例
(4)相应请求:jsp容器调用该实例的请求处理方法处理客户请求,并将相应消息回复给客户
——————————————————————————————————————————————
网站模式
1、(B/S,Brower/Server)基于浏览器--服务器间的应用
2、(C/S,Client/Server)较早,单机应用-->客户--服务器
-----------------------------------------------------------------------------------------
动态网页与静态网页的区别
静态网页:指事先做好、内容固定不变的网页,可以直接被浏览器解释执行
动态网页:当请求到达时,由服务器端程序运行而产生的网页,不能被浏览器直接执行。
网页内容需要实时更新,来自于数据库和用户交互。
-------------------------------------------------------------------------------------------
简述使用javaBean 的好处优点:可以实现代码的重复使用,跨平台性较好。
-------------------------------------------------------------------------------------------
一个完整的会话期指:访问者打开浏览器并连接到服务器开始,访问者关闭浏览器离开该服务器。
jsp文件的组成元素
1、注释。2、脚本元素。3、指令元素。4、动作元素。
----------------------------------------------------------------------------------------
jsp中表单提交的do post()方法和do get()方法有何区别
get方式传值有三种形式:a、在地址栏中直接输入url地址。b、单击网页上的超链接。3、form表单的method属性设置为get
以get方式传值参数直接跟在请求资源的后面,请求资源与参数间用“?”隔开,参数与参数值之间用"="连接,参数与参数间用“&”连接
参数在地址栏中显出,传递数量较少,安全子那个不好
post传值只有一种form表单属性设置为post,参数在地址栏中不可见,较安全且传递数量较大。
--------------------------------------------------------------------------------------------
jsp中的指令; page include taglib
一 page 属性{
1、language 设置当前页面的脚本语言(目前只识别java脚本)
2、import属性主要用于引入外在的类库
3、extends指定jsp转换成servlet后继程的父类
4、session用于指定当前页面是否使用session默认情况为true
5、buffer指定out 对象输出的缓冲区 不常用(注意有三个条满足时才用)
6、autoFlush、指定缓冲区满时是否进行刷新(一般采用默认值)
7、isThreadSate jsp页面的访问是否是线程安全的(设置为true时 可以允许页面被多个用户同时请求)
8、iffo 用于提供当前页面的信息,通过getServletInfo()读取信 息
9、errorPage 当jsp页面执行发生异常时容器将会转向错误处理图页 面,返回给客户端浏览器
10、isErrorPage指定当前页面是否是一个错误处理页面设置为 true时可以通过内置exception获取页面的处理信息
11、contentType指定服务器发送给客户端时的MIME类型和设置编码 问题
12、pageEncoding 用于指定jsp文件本身的编码(如果未设置则采用 conTentType编码)
13、isElgnored 是否忽略El表达式
}————————————————————————————————————————————
二 include 属性
1、<%@ include file="URL"%>此种属于静态包含,将指定的内容映 入到当前页面融合成一个页面统一编译转成servelt
三、taglib 属性(主要在JSTL中使用)
1、uri 指定标记库的uri可以是相对路径也可以是绝对路径
2、prefix 指定标记的前缀
—————————————————————————————————————————————————————————
jsp中的脚本元素
1 声明:用于定义实类变量,方法,及内部类
格式 <%! %>此标记中间的内容转换成servlet后成为其成员变量、或成员方法
2 JSP表达式
格式<%=%>主要将结果返回到客户端(表达式语句后边不带分号)
脚本代码
格式<%%> 此格式较常用主要定义局部变量和方法,转化为servlet后都在service()中体现
————————————————————————————————————————————————————————
动作指令共有20中常用的有9中
1、<jsp:includet page="url"/>
<jsp:includet page="url"></jsp:include>//可以用与传递参数
主要与前面的<%@ include url%>区别此标记是在jsp页面执行过程中将包含的结果插入到当前页面的执行结果中
2、<jsp:forward page="url"/>
<jsp:forward page="url">
<jsp:forward page="url"></jsp:forward>
a 结合<jsp:param name="参数名字" value="参数值"/>使用
3 <jsp:params>中可以嵌套多个<jsp:param>使用0
4、<jsp:plugin type=""/>用于嵌套在客户端运行的java程序目前只有两种applet/bean,有较多属性
5、<jsp:useBean scope="" id="" class=""/>
<jsp:useBean scope="" id="" class=""></jsp:useBean>
"scope"属性用于指定当前对象的作用范围如“page request session appliction”{
Scope各项参数的意义:
page:仅涵盖使用JavaBean的页面
(PageBean.jsp/CounterBean.java)
request:有效范围仅限于使用JavaBean的请求
(RequestBean.jsp/RequestBean2.jsp/CounterBean.java)
session:有效范围在用户整个连接过程中(整个会话阶段均有效)
(SessionBean.jsp/Session2.jsp/CounterBean.java)
application:有效范围涵盖整个应用程序。也就是对整个网站均有效
(Application.jsp/Application2.jsp/CounterBean.java)
}
“id”指当前类所创建的对象
class后跟具体的类(class a= new class())
<jsp:setProperty name="" property="*/bean参数名字" param="表单参数名字" value="具体值">读取javaBean设置的属性值,"name"相当于useBean中的id ,
后面的三个属性可以不同时出现(*可以将参数与bean中的参数一一匹配传值)
<jsp:getProperty>与上面用法相似
————————————————————————————————————
jsp中的注释
<%-- 注释内容 --%>
html中的注释<!-- 注释内容 -->
sql注释 --加注释语句
___________________________________________________________________
简单乱码处理
1、处理“post()”request. setCharacterEncoding("GBK");
2、处理“get()”
String test = new String(request.getParameter("test").getBytes("ISO-8859-1"),"GBK");
或者用<%@ page contentType="text/html;Charset=GBK"%>
3、字符集Charset=GBK第一个字母C大写代替上面的两种写法
————————————————————————————————————————————————————
jsp中的内置对象(共9个)
1、page(不常用)[存活于当前网页中]
2、pageContext代表的是当前页面的上下文,可以控制其他的内置对象
3、request对象为较常用的内置对象主要作用于1、对对象属性的设置和获取2、设置字符编码(setCharacterEncoding())
3、获取请求参数4、获取请求行信息5、获取请求头信息6、获取网络信息[存活于一次请求中]
较常用的方法{
getProtocol():获取请求使用的通信协议,如http/1.1等。
getServletPath():获取请求的JSP页面所在的目录。
getContentLength():获取HTTP请求的长度。
getMethod():获取表单提交信息的方式,如POST或GET。
getHeader(String s):获取请求中头的值。
getHeaderNames():获取头名字的一个枚举。
getHeaders(String s):获取头的全部值的一个枚举。
getRemoteAddr():获取客户的IP地址。
getRemoteHost():获取客户机的名称(如果获取不到,就获取IP地址)。
getServerName():获取服务器的名称。
getServerPort():获取服务器的端口号。
getParameterNames():获取表单提交的信息体部分中name参数值的一个枚举
其它还有获取网络信息的相关方法在P96
}
4、response对象是服务器对客户端响应信息的回复
较常用的方法{
void sendRedirect(String url)
PrintWriter getWriter()
}
5、session对象用于回话跟踪信息可以在客户多个请求中共享[存活于浏览器窗口中]//在用户第一次访问jsp页面时产生
常用方法{
setArttribute()
getAttribuate()i
removeAttribute()
String getid()
long getCreationTime()//对象的创建时间
boolean isNew()//判断是否是新的对象
void invalidate()//强制释放当前对象
}
6、application用于记录整个公用信息可以被更多的用户共享[存活于服务器上经常用于计数器操作]//在WEB服务器启动时产生
7、out对象和config对象
————————————————————————————————————————————————————
jsp中<jsp:forward>(转发)、<sendRedirect(String url)>(重定向表单提交中)、超链接区别
<jsp:forward>属于服务器内部转发不经过客户端速度快【属于同一个请求对象】
<sendRedirect(String url)>何超链接都要经过客户端速度脚面【属于不同的请求对象】
——————————————————————————————————————————————————
Servlet知识点
(1)检测是否已经装载并创建了实例
(2)转载并创建实例对象
(3)servle调用实例对象的init()方法(此方法只被调用一次)
(4)创建一个封装http请求的对象调用service()将请求和相应参数作为对象传进去servlet实例通过请求对象获取请求信息进行处理
通过相应对象进行相应信息回复(此方法可以被多次调用)
(4)卸载Servlet调用destroy()方法
------------------------------------------------------------------------------------------------
jsp中数据库相关知识点
1、较常用的有两种方法1、jdbc--odbc桥接器方法。2、使用各种数据库相对应的驱动包
此处以后者为例(mysql)
对数据库操作主要分为五步
1、加载驱动用Class.forName("com.mysql.jdbc.Driver")方法,驱动语句"com.mysql.jdbc.Driver";
2、创建连接对象
String url="jdbc:mysql://localhost:3306/数据库名"
String user=""
String password=""
Connection conn=DriverManager.getConnection(url,user,password).
3、建立语句对象
Statement stmt=conn.createStatement()//或是创建更高级的预处理语句对象(PreparedStatement ps=conn.prepareStatement("sql"))
4、Statement对象执行SQL语句
ResultSet rs=stmt.executeQuery("sql")//该方法返回ResultSet对象用来封装查询结果
或stmt.executeUpdate("sql")//该方法返回int类型显示受影响的行数执行的sql语句如(insert,update,delete)
对于PreparedStatement来说executeQuery()、executeUpdate()是不需要参数的
5、对数据库的关闭。conn.close()(结果集的关闭,语句对象的关闭)
2、简单的语句对象只执行一次sql语句要执行多次的需要创建多个查询计划,使用PreparedStatement可以解决相关问题
并且还可以防止sql注入。
3、与数据库相关的事务处理
主要指人为的管理事物操作,调用setAutoCommite()方法关闭自动提交,使用commit()和rollback()对事务处理、