所有Demo可以下载,链接在尾部。
一 简单JSP页面
1 hello world
代码
<html>
<head>
<title>第一个JSP程序</title>
</head>
<body>
<%
out.println("Hello World!");
%>
</body>
</html>
效果:
2 JSP生命周期
代码
<%@ page contentType="text/html; charset=GB2312" %>
<html><head><title>life.jsp</title></head><body>
<%!
private int initVar=0;
private int serviceVar=0;
private int destroyVar=0;
%>
<%!
public void jspInit(){
initVar++;
System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
}
public void jspDestroy(){
destroyVar++;
System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
}
%>
<%
serviceVar++;
System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");
String content1="初始化次数 : "+initVar;
String content2="响应客户请求次数 : "+serviceVar;
String content3="销毁次数 : "+destroyVar;
%>
<h1><%=content1 %></h1>
<h1><%=content2 %></h1>
<h1><%=content3 %></h1>
</body></html>
效果:
3 获取自己的IP
代码:
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>
效果:
4 获取日期
代码
<html>
<head><title>A Comment Test</title></head>
<body>
<p>
Today's date: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
效果:
5 if-else
代码
<%! int day = 3; %>
<html>
<head><title>IF...ELSE Example</title></head>
<body>
<% if (day == 1 | day == 7) { %>
<p> Today is weekend</p>
<% } else { %>
<p> Today is not weekend</p>
<% } %>
</body>
</html>
6 switch
<%! int day = 3; %>
<html>
<head><title>SWITCH...CASE Example</title></head>
<body>
<%
switch(day) {
case 0:
out.println("It\'s Sunday.");
break;
case 1:
out.println("It\'s Monday.");
break;
case 2:
out.println("It\'s Tuesday.");
break;
case 3:
out.println("It\'s Wednesday.");
break;
case 4:
out.println("It\'s Thursday.");
break;
case 5:
out.println("It\'s Friday.");
break;
default:
out.println("It's Saturday.");
}
%>
</body>
</html>
效果:
7 for
<%! int fontSize; %>
<html>
<head><title>FOR LOOP Example</title></head>
<body>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color="green" size="<%= fontSize %>">
JSP Tutorial
</font><br />
<%}%>
</body>
</html>
效果:
8 include
<html>
<head>
<title>The include Action Example</title>
</head>
<body>
<center>
<h2>The include action Example</h2>
<jsp:include page="date.jsp" flush="true" />
</center>
</body>
</html>
效果:
9 使用Bean
建立TestBean.java,
package action;
public class TestBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
然后用javac命令编译为class文件;
测试jsp页:
<html>
<head>
<title>Using JavaBeans in JSP</title>
</head>
<body>
<center>
<h2>Using JavaBeans in JSP</h2>
<jsp:useBean id="test" class="action.TestBean" />
<jsp:setProperty name="test"
property="message"
value="Hello JSP..." />
<p>Got message....</p>
<jsp:getProperty name="test" property="message" />
</center>
</body>
</html>
把class文件拷贝到如下目录;
运行测试页,结果如下;
二 项目上的简单JSP页
1 一个精简登陆JSP,未连数据库
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>登陆</title>
</head>
<body>
<form method="POST" name="frmLogin" action="LoginServlet">
<h1 align="center">用户登录</h1><br />
<center>
<table border=1>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="username" value="Your name" size="20" maxlength="20" οnfοcus="if (this.value=='Your name') this.value='';" />
</td>
</tr>
<tr>
<td>密 码:</td>
<td>
<input type="password" name="password" value="Your password" size="20" maxlength="20" οnfοcus="if (this.value=='Your password') this.value='';" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="Submit" value="提交" onClick="return validateLogin()" />
</td>
<td>
<input type="reset" name="Reset" value="重置" />
</td>
</tr>
</table>
</center>
</form>
<script language="javascript">
function validateLogin(){
var sUserName = document.frmLogin.username.value ;
var sPassword = document.frmLogin.password.value ;
if ((sUserName =="") || (sUserName=="Your name")){
alert("请输入用户名!");
return false ;
}
if ((sPassword =="") || (sPassword=="Your password")){
alert("请输入密码!");
return false ;
}
}
</script>
</body>
</html>
效果:
2 三个的登陆页
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form name="loginForm" method="post" action="judgeUser.jsp">
<table>
<tr>
<td>用户名:<input type="text" name="userName" id="userName"></td>
</tr>
<tr>
<td>密码:<input type="password" name="password" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="登录" style="background-color:pink"><input type="reset" value="重置" style="background-color:red"></td>
</tr>
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>身份验证</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
String password = request.getParameter("password");
if(name.equals("abc")&& password.equals("123"))
{
%>
<jsp:forward page="afterLogin.jsp">
<jsp:param name="userName" value="<%=name%>"/>
</jsp:forward>
<%
}
else
{
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录成功</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
out.println("欢迎你:" + name);
%>
</body>
</html>
总共3个jsp文件,第一个是login.jsp,第2个是judgeUser.jsp,第3个是afterLogin.jsp
效果:
3 一个简单留言板
首先在MySQL中建立测试数据;如下图,有时候难免也会输入错sql;
拷贝MySQL安装目录下的JDBC驱动到tomcat的lib目录;
看了图图,再看下码码;
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 —— JSP + JDBC实现</h1>
<hr>
<br>
<%
// 编码转换
request.setCharacterEncoding("GB2312") ;
if(session.getAttribute("uname")==null)
{
// 用户已登陆
%>
<%!
String host="localhost"; //数据库主机
String database="test"; //数据库名
String user="root"; //用户名
String pass="123456ab"; //口令
java.sql.Connection conn; //数据库连接对象
java.sql.Statement pstmt; //语句对象
java.sql.ResultSet rs; //结果集对象
%>
<%
// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0 ;
String sql = null;
String keyword = request.getParameter("keyword") ;
// out.println(keyword) ;
if(keyword==null)
{
// 没有任何查询条件
sql = "SELECT id,title,author,content FROM note" ;
}
else
{
// 有查询条件
sql = "SELECT id,title,author,content FROM note WHERE title like ? or author like ? or
content like ?" ;
}
try
{
Class.forName("com.mysql.jdbc.Driver");
conn= java.sql.DriverManager.getConnection("jdbc:mysql://"+host+"/"+database,user,pass);
pstmt=conn.createStatement
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=pstmt.executeQuery (sql);
// 如果存在查询内容,则需要设置查询条件
if(keyword!=null)
{
// 存在查询条件
//pstmt.setString(1,"%"+keyword+"%") ;
//pstmt.setString(2,"%"+keyword+"%") ;
//pstmt.setString(3,"%"+keyword+"%") ;
}
//rs = pstmt.executeQuery() ;
%>
<form action="list_notes.jsp" method="POST">
请输入查询内容:<input type="text" name="keyword">
<input type="submit" value="查询">
</form>
</h3><a href="insert.jsp">添加新留言</a></h3>
<table width="80%" border="1">
<tr>
<td>留言ID</td>
<td>标题</td>
<td>作者</td>
<td>内容</td>
<td>删除</td>
</tr>
<%
while(rs.next())
{
i++ ;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
int id = rs.getInt(1) ;
String title = rs.getString(2) ;
String author = rs.getString(3) ;
String content = rs.getString(4) ;
if(keyword!=null)
{
// 需要将数据返红
title = title.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>")
;
author = author.replaceAll(keyword,"<font color=\"red\">"+keyword
+"</font>") ;
content = content.replaceAll(keyword,"<font color=\"red\">"+keyword
+"</font>") ;
}
%>
<tr>
<td><%=id%></td>
<td><a href="update.jsp?id=<%=id%>"><%=title%></a></td>
<td><%=author%></td>
<td><%=content%></td>
<td><a href="delete_do.jsp?id=<%=id%>">删除</a></td>
</tr>
<%
}
// 判断i的值是否改变,如果改变,则表示有内容,反之,无内容
if(i==0)
{
// 进行提示
%>
<tr>
<td colspan="5">没有任何内容!!!</td>
</tr>
<%
}
%>
</table>
<%
rs.close() ;
pstmt.close() ;
conn.close() ;
}
catch(Exception e)
{}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
RUN;
4 一个jquery easy ui 的GRID
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="http://www.w3cschool.cc/try/jeasyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="http://www.w3cschool.cc/try/jeasyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="http://www.w3cschool.cc/try/jeasyui/demo/demo.css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script>
<script type="text/javascript" src="jquery.easyui.min.js"></script>
</head>
<body>
<table id="dg" title="My Users" class="easyui-datagrid" style="width:550px;height:250px"
url=""
toolbar="#toolbar"
rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="firstname" width="50">First Name</th>
<th field="lastname" width="50">Last Name</th>
<th field="phone" width="50">Phone</th>
<th field="email" width="50">Email</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" οnclick="newUser()">New User</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" οnclick="editUser()">Edit User</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" οnclick="destroyUser()">Remove
User</a>
</div>
</body>
</html>
当前没有数据,easy ui 可以不要js简单创建视觉效果不错的GRI
代码下载: