您的位置:首页 > Web前端 > JavaScript

jsp基础

2016-10-17 22:52 369 查看

1、web应用和web.xml

结构

webApp

|-WEB-INF

|-classes

|-lib

|-web.xml

|-index.jsp

配置web.xml

配置jsp

配置和管理Servlet

配置和管理Listener

配置和管理Filter

配置标签库

配置jsp属性

配置和管理资源引用

Web应用首页

Web3.0新增配置:

metadata-complete:该属性接受true和false两个属性值。当该属性为true,该web应用将不会加载annotation配置的web组件(如servlet,filter,listener等);

配置web应用的首页列表

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.xhtml</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

2、jsp输出

<% out.println(newjava.util.Date());%>

<% =i%>

3、jsp流程控制语句

<% for(inti=0;i<7;i++){%>
<p>java<%=i%></p>

<%}%>

4、jsp注释

Jsp注释不会输出到客户端

<%--jsp注释 --%>

5、jsp声明

<%!
//声明一个整型变量
public
int
count;
//声明一个方法
public String info(){
return
"hello world";
}
%>
<%
out.println(count++);
out.println(info());
%>

6、jsp脚本

<%
//注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接
Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc",
"root","");
Statementstmt=conn.createStatement();
//获得结果集
ResultSet rs=stmt.executeQuery("select * from tb_user");
%>
<%
while(rs.next()){
%>
<tr><td><%=rs.getString(1)
%></td></tr>
<%}
%>

7、jsp的三个编译指令

page:该指令时针对当前页面的指令
include:用于指定包含另一个页面
taglib:用于定义和访问自定义标签

page指令
page指令通常位于jsp页面的顶端,一个jsp页面可以使用多个page指令。

errorPage
testError.jsp
<%@
page language="java"import="java.util.*"
pageEncoding="UTF-8"
errorPage="error.jsp"%>
<%@
page import="java.sql.*"%>
Error.jsp
<%@
page language="java"import="java.util.*"
pageEncoding="UTF-8"
isErrorPage="true"%>

Include指令
将一个外部文件嵌入到jsp页面,同时解析页面中的jsp语句
<%@
include file="part.jsp"%>

8、jsp的七个动作指令

动作指令与编译指令不同,编译指令时通知servlet引擎处理消息,而动作指令只是运行时的动作。编译指令在将jsp编译成servlet时起作用;而处理指令通常可替换成jsp脚本,它只是jsp脚本的标准化写法。
Jsp动作指令只要有如下7个:
jsp:forward
jsp:param
jsp:include
jsp:plugin
jsp:useBean
jsp:setProperty
jsp:getProperty

forward指令
forward指令用于将页面相应转发到另外的页面。
执行forward转发请求时候,客户端的请求参数不会丢失。
index.jsp
<jsp:forward
page="forward-result.jsp">
<jsp:param
value="29"name="age"/>
</jsp:forward>

forward-result.jsp

<%=request.getParameter("age")%>

include指令
include指令用于包含某个页面,将被导入页面的body内容插入本页面。
静态导入和动态导入有三点区别:
1、静态导入时将被导入页面的代码完全融入,两个页面融合成一个整体servlet;而动态导入则在servlet中使用include方法来导入被导入页面的内容。
2、静态导入时被导入页面的编译指令起作用,而动态导入时被导入页面的编译指令失去作用。只是插入被导入页面的body内容。
3、动态包含还可以增加额外的参数。
Index.jsp
<jsp:include
page="forward-result.jsp">
<jsp:param
value="32"
name="age"/>
</jsp:include>

forward-result.jsp

<%=request.getParameter("age")%>

useBean、setProperty、getProperty指令
这三个指令时与javabean相关的指令。

id 属性石javabean的实例名;
class属性石javabean的实现类;
scope属性用于指定javaBean实例的作用范围,该范围有以下4个值:
1、page:该javabean实例仅在该页面有效;
2、request:该javabean实例在本次请求有效;
3、session:该javabean实例在本次session内有效;
4、application:该javabean实例在本应用内有效;

setProperty指令

name属性确定需要设定的javabean的实例名;
property属性确定需要设置的属性名;
value属性则确定需要设置的属性值;

getProperty指令

name属性确定需要输出的javabean的实例名;
property属性确定需要输出的属性名;

<!-- 创建javabean实例,该实例的实例名为p1
-->
<jsp:useBean
id="p1"class="com.xxx.domain.Person"
scope="page"/>
<!-- 设置p1的name属性
-->
<jsp:setProperty
property="name"name="p1"
value="wawa"/>
<!-- 设置p1的age属性值
-->
<jsp:setProperty
property="age"name="p1"
value="23"/>
<!-- 输出p1的name属性值
-->
<jsp:getProperty
property="name"name="p1"/><br>
<!-- 输出p1的age属性值
-->
<jsp:getProperty
property="age"name="p1"/>

下面和上面的效果是一样

<%
//实例化javabean
Person p1=new Person();
//将p1放到page的生存范围中
pageContext.setAttribute("p1", p1);
//将p1放入request的生存范围中
//request.setAttribute("p1",p1);
//将p1放入session的生存范围中
//session.setAttribute("p1",p1);
//将p1放入application的生存范围中
//application.setAttribute("p1",p1);
//设置p1的name属性值
p1.setName("wawa");
//设置p1的age属性
p1.setAge(23);
%>
<!-- 输出p1的name属性值
-->
<%=p1.getName()%>
<!-- 输出p1的age属性值
-->
<%=p1.getAge()%>

plugin指令
用于下载服务器端的javabean或applet到客户端执行。
很少使用

Param指令
Param指令用于设置参数值,这个指令不能单独使用。
Param指令可以与以下三个指令结合使用
jsp:include
jsp:forward
jsp:plugin
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: