我的总结:JSP语法精华!

      今天巩固了一下JSP的基础知识,不过说来惭愧,虽然之前搞了一个半月的J2EE,但是java web开发的始祖JSP,却很久都没有系统学习。

 

呵呵,基本上都本末倒置了,最初打算先做一个JSP新闻发布,为我的web学习开个好头,但是由于我们团队的进度较快,再加上JSP有关书籍内容太多,我还是比较

 

推崇精简与效率的。所以一直没做,今天打算先放一放J2EE,回头看看基础了,毕竟基础才是最重要的。

 

之前我有写过一个HTML语法精华。现在推出我的JSP总结,就起了JSP语法精华的名字。不过这次不只是单单的一些基本语法,最重要的是还举了一个实例。

 

JSP留言板中两个JSP页面的源码,包括FCKEditor功能,JS验证框架,还有一些JSP的基本用法。

 

希望可以让不熟悉JSP的人,通过这篇帖子,迅速熟悉JSP的基本用法。

 

************************JSP基本语法*****************************

JSP代码的注释:
使用“//”对单行注释
使用“/**/”对多行代码进行注释
使用“/**  */”对多行注释
使用“<%--  --%>”多行注释
使用“<!--  -->”多行Html代码进行注释,不要用于Java代码注释

 

指令标记

page指令
include指令
taglib指令
<%@ page language="java"%>(对JSP页面特性作说明)
<%@ include file="hearder.htm"%>(包含另外的Jsp文件或Html文件)
<%@ taglib url="http://www.cnblogs.com/shiyangxt" prefix="util"%>(用于标记库)

 

常用page指令
<%@page
[language="java"]
[extends="package.class"]
[import="{package.class|package.*},..."](引用包、类)
[session="true|false"](设定会话是否有效)
[buffer="none|8kb|sizekb"]
[autoFlush="true|fasle"]
[isThreadSafe="true|fasle"]
[info="text"]
[errorPage="relativeURL"]
[isErrorPage="ture|fasle"](表示当前页面是显示错误的)
[errorPage="/..."](转到错误页)
[contentType="text/html";charset=utf-8"](设定内容输出类型,字符编码格式)
[pageEncoding="utf-8"](设定字符编码格式)
[isELIgnored="true|false"]
%>

 

声明标记(Declaration)(声明全局变量)
<%!
private int getDateCount=0;
private String getDate();
{....}
%>
还可以定义jspInit()(初始化页面的调用方法)

jspDestroy()方法(当页面销毁时调用的方法)。

 

Scriptlet标记(声明局部变量)
<%int i=10;%>
嵌套使用
<%if(time<12){%>
How are you this morning?
<%}else{%>
How are you this afternoon?
<%}%>

表达式标记(Expression)
<%=incrementCounter()%>

 

动作(action)
<jsp:include>动作
include指令与<jsp:include>动作的区别:include指令直接包含内容而不是调用方法。
<jsp:forword>动作(转向)

 

*JSP内置对象

 

说明:
out(输出内容)
request(获取表单参数)
response(完成转向)
session(会话对象,跨页面保存信息)
application(跨用户保存信息)
config(读取设置信息)
page(页面本身)
pageContext(页面上下文)
exception(输出违例)


 

这里列举的都是最常用的语法,当然会有遗漏,想要更系统掌握JSP,还是要找本书来看。但是一些基本的功能,如新闻发布,小论坛,就可以做了。

 

下面是实例

 

*************************JSP留言板******************************

 

实现插入MYSQL数据库操作的JSP页面源码:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.io.IOException,java.io.PrintWriter,java.sql.Connection,java.sql.DriverManager,
java.sql.PreparedStatement,java.sql.SQLException,java.text.SimpleDateFormat,javax.servlet.ServletException,
javax.servlet.http.HttpServlet,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,
com.sy.util.*
" %>
<%@ include file="/header.jsp"%>
<%
        String url 
= "jdbc:mysql://localhost:3306/dbname";
        String username 
= "username";
        String password 
= "password";

        String sql 
= "insert into tablename(name,email,phone,title,content,time) values(?,?,?,?,?,?)";
        
int result = 0;
        Connection conn 
= null;

        request.setCharacterEncoding(
"utf-8");
        String name 
= request.getParameter("name");
        String title 
= request.getParameter("title");
        
        
if (StringUtil.validateNull(name)) {
        
%>
            对不起,姓名不能为空,请您重新输入!
<br>
            
<a href="<%=context %>/addMessage.jsp">添加新的留言</a><br>
        <%else if (StringUtil.validateNull(title)) {%>
            对不起,主题不能为空,请您重新输入!
<br>
            
<a href="<%=context %>/addMessage.jsp">添加新的留言</a><br>
            <%else {
            
                Class.forName(
"com.mysql.jdbc.Driver");
                conn 
= DriverManager.getConnection(url, username, password);

                PreparedStatement pstmt 
= conn.prepareStatement(sql);
                pstmt.setString(
1, StringUtil.filterHtml(name));
                pstmt.setString(
2, StringUtil.filterHtml(request.getParameter("email")));
                pstmt.setString(
3, StringUtil.filterHtml(request.getParameter("phone")));
                pstmt.setString(
4, StringUtil.filterHtml(title));
                pstmt.setString(
5, request.getParameter("content"));

                SimpleDateFormat sdf 
= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
                pstmt.setString(
6, sdf.format(new java.util.Date()));
                result 
= pstmt.executeUpdate();
                pstmt.close();
            
            
if (result == 0) {
            
%>
                对不起,添加留言不成功,请您重新输入!
<br>
                
<a href="<%=context %>/addMessage.jsp">添加新的留言</a><br>
            <%else {%>
                祝贺您,成功添加留言。
<br>
                
<a href="<%=context %>/getMessage.jsp">查看所有留言内容</a><br>
            <%}
            }
%>
<%@ include file="/footer.htm" %>

 

从数据库提取数据的JSP页面:

 

ContractedBlock.gif ExpandedBlockStart.gif getMessage.jsp
<%@ page pageEncoding="UTF-8" %>
<%@ page import="java.io.*,java.sql.*,javax.servlet.*,javax.servlet.http.*,com.sy.util.*" %>
<%@ include file="header.jsp" %>
<style>
*{font-family:"宋体";font-size:14px}
</style>
<a href="<%=context%>/addMessage.jsp">添加新的留言内容</a><br>
留言内容<br><br>
<%
        String url 
= "jdbc:mysql://localhost:3306/dbname";
        String username 
= "username";
        String password 
= "password";
        String sql 
= "select * from tablename order by id desc";
        Connection conn 
= null;
        Class.forName(
"com.mysql.jdbc.Driver");
            conn 
= DriverManager.getConnection(url, username, password);
            PreparedStatement pstmt 
= conn.prepareStatement(sql);
            ResultSet rs 
= pstmt.executeQuery();
            
while (rs.next()) {
                
 
%>

<div align="center">
  
<table width="600" border="1" bordercolor="#000000">
    
<tr>
      
<td bordercolor="#FFFFFF">编号:</td>
      <td bordercolor="#FFFFFF"><%=rs.getInt("id")%></td>
    </tr>
    <tr>
      
<td bordercolor="#FFFFFF">姓名:</td>
      <td bordercolor="#FFFFFF"><%=rs.getString("name")%></td>
    </tr>
    <tr>
      
<td bordercolor="#FFFFFF">电话:</td>
      <td bordercolor="#FFFFFF"><%=StringUtil.chanageNull(rs.getString("phone"), "没填")%></td>
    </tr>
    <tr>
      
<td bordercolor="#FFFFFF">Email:</td>
      <td bordercolor="#FFFFFF"><%= StringUtil.chanageNull(rs.getString("email"), "没填")%></td>
    </tr>
    <tr>
      
<td bordercolor="#FFFFFF">主题:</td>
      <td bordercolor="#FFFFFF"><%=rs.getString("title")%></td>
    </tr>
    <tr>
      
<td bordercolor="#FFFFFF">内容:</td>
      <td bordercolor="#FFFFFF"><%=StringUtil.chanageNull(rs.getString("content"), "没填")%></td>
    </tr>
    <tr>
      
<td bordercolor="#FFFFFF">时间:</td>
      <td bordercolor="#FFFFFF"><%=rs.getString("time")%></td>
    </tr>
  </table>
</div>
<br><br>
<%%>
<%@ include file="footer.htm" %>

 

以上两个JSP文件,相信可以让你对JSP的体会更深一步,虽然是一个过时的技术,但是现在很多Java WEB技术,大多都是由它演变来的。

 

所以我们要掌握它。如果有帮到你,就顶吧。

 

施杨出品!!!谢绝转载!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值