图解JSP页面教程

    所有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>密&nbsp;&nbsp;码:</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

 

    代码下载:

http://pan.baidu.com/s/1pJyrHxT

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值