- 浏览: 155179 次
- 性别:
- 来自: 保定
文章分类
最新评论
-
hellostory:
高级查询的查询参数放哪里?
SSH超实用分页实现(原创开源)! -
topbox163:
不错。。。。。。。。。
拥有属于自己的SVN(Google SVN)(更新版) -
shiyangxt:
忧_零 写道不知道这个问题LZ是否解决了啊,今天同样碰到这个问 ...
救助贴???关于Mysql插入二进制文件 -
忧_零:
不知道这个问题LZ是否解决了啊,今天同样碰到这个问题了,错误相 ...
救助贴???关于Mysql插入二进制文件 -
sornor:
不错!总算对servlet和jsp之间的关系有了了解了!感谢感 ...
JSP与Servlet的关系和实例分析(转帖)
今天巩固了一下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页面源码:
<!----><%@ 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页面:
<!----><%@ 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技术,大多都是由它演变来的。
所以我们要掌握它。如果有帮到你,就顶吧。
施杨出品!!!谢绝转载!!!
发表评论
-
Java入门编程实例
2008-06-03 16:38 792php的学习先告一段落了,现在拿出近几天看的视频教 ... -
java基础进阶(文件列表,线程,线程组)编程实例(4篇)
2008-06-09 19:59 1081此处刊登代码均测试通过,完全准确! import j ... -
闭关贴!(含Java实践经验)
2008-06-16 11:32 745由于下周就考试 ... -
JSP与Servlet的关系和实例分析(转帖)
2008-06-18 16:39 3303JSP是Servlet的扩展,在没有J ... -
JSP环境配置全解!
2008-06-30 12:26 835实现JSP文件环境配置除了MyEclipse外,最 ... -
JSF搭建完成!(源码)
2008-07-07 12:07 1125今天搭建了我的第一个J ... -
Struts搭建完成!(源码)
2008-07-08 17:07 1401今天又搭好了我的第一个Struts框架,虽然觉有些复杂。但是我 ... -
Java连接数据库(mysql,sqlsever,Oracle,access)的调用函数!
2008-07-09 20:34 1784Java连各种数据库容易混淆,所以总结一下: oracle: ... -
实现Java连接mysql(源码)!
2008-07-10 22:14 3760Java连接mysql数据库,代码经过运行准确无误。 下面为实 ... -
Hibernate搭建成功!(源码)
2008-07-12 12:00 919昨天晚上搭建了我的第一个Hibernate框架。感觉挺爽的! ... -
MyEclipse内的Tmocat启动异常解决方案
2008-07-13 18:51 1030在我们平常使用MyEclipse运行项目的时候,往往只需要启动 ... -
Struts+DAO框架搭建完成!(源码)
2008-07-13 21:32 916今天做了这个Struts+DAO框架,可以说是又向SSH迈了一 ... -
一个折磨我一下午的编程问题
2008-07-14 20:36 667今天下午搭Struts+DAO+Hibernate遇到一处错误 ... -
搭SSH时遇到的问题,已解决!
2008-07-16 18:46 760今天下午搭SSH,由于MyEclipse版本的不同,所以在搭的 ... -
JS验证框架的使用方法
2008-07-26 17:01 1103今天着重介绍的是JS验证框架在Java Web项目中的应用, ... -
搭建Servlet在线视频
2008-07-27 22:09 1045这个视频flash上传及在 ... -
快速实现国际化---插件ResourceBunbleEditor的使用
2008-07-29 16:33 1061最近发现一个非常好用的插件,这个插件可以使Java的Web项目 ... -
Java数据库连接池类源码
2008-07-30 21:41 1776环境:MyEclipse 数据库:mysql 首先新建 ... -
Common Dbutils组件的使用(源码)
2008-08-01 20:50 1365Common Dbutils是操作数据库的组件,对传统操作数据 ... -
hibernate错误集锦(转)
2008-08-06 21:03 803**************************hiber ...
相关推荐
【JSP 精华知识点总结】 Java Server Pages(JSP)是Java EE平台中用于构建动态Web应用程序的重要组成部分。它结合了HTML和Java代码,让开发者能够在同一个文件中处理静态内容和动态逻辑。JSP的本质是Servlet,它...
3. 学习JSP语法,包括EL和JSTL。 4. 实践项目,将理论知识应用于实际场景。 5. 阅读CSDN等社区的精华帖子,了解最新的技术和最佳实践。 **总结**: JSP_CSDN精华帖子是开发者深入学习JSP的重要资源,它覆盖了从基础...
总结来说,`jsp:forward`和`jsp:include`都是JSP中用于页面间交互的重要元素。`jsp:forward`用于请求转发,保持原请求的所有信息;而`jsp:include`用于动态包含页面,适用于重复使用部分页面内容的场景。两者都可以...
本学习套包是专为JavaServer Pages(JSP)初学者及进阶者设计的,包含三个核心部分:JSP精华文章、JSP语法和JSP由浅入深。这些资源旨在帮助学习者全面理解和掌握JSP技术,通过深入学习和实践,提升在Web开发中的应用...
EL(Expression Language)是用于访问JSP中的对象和属性的简洁语法,减少了脚本元素的使用。 ### 9. JSP与现代Web框架 随着Web开发的复杂度增加,Spring MVC、Struts、JSF等高级框架逐渐取代了纯JSP的开发方式。...
`JSP语法.chm`这份文档涵盖了JSP的基础语法,其中包括动态网页的创建、HTML元素的嵌入、JSP指令(page、include、taglib)、动作标签(jsp:include、jsp:forward等)以及脚本元素(声明、脚本let、表达式)。...
这组笔记集合了他在Java、JSP和Servlet方面的教学精华,虽然不包含全部内容,但仍然极具价值,能够帮助学习者深入理解和掌握这三个关键的技术。 首先,让我们探讨Java。Java是一种广泛使用的面向对象的编程语言,以...
这份"JAVA基础知识精华总结"涵盖了Java学习的核心概念,对于初学者来说是极好的参考资料。下面将对Java的基础知识进行详尽的阐述。 1. **Java简介**:Java由Sun Microsystems开发,现已被Oracle公司收购。它的设计...
Java自学之路——精华版 Java作为一种广泛使用的编程语言,对于初学者来说,有着丰富的资源和广阔的学习路径。本文将提供一份详细的自学指南,帮助你高效地掌握Java编程技能。 一、选择合适的自学资源 在开始Java...
紧接着的是`DOCTYPE`声明,它指定了文件所遵循的DTD(Document Type Definition)版本,该版本规定了文件的语法和结构: ```xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//...
- 易于学习:PHP的语法简洁,对新手友好,且与C、Perl、ASP和JSP等语言有相似之处,使得学习过程更为顺畅。 - 数据库连接:PHP支持与多种数据库的连接,如MySQL,这使其成为动态网站开发的理想选择。PHP与MySQL的...
其次,"黑马程序员入学Java精华总结"这本书籍或文档可能是对Java基础知识的系统性梳理,它可能涵盖了从基础语法到项目实践的所有关键知识点,旨在帮助初学者快速建立起对Java的全面认知。这可能包括: 1. **基础...
- **核心知识点**:熟悉SQL语法用于数据库操作。包括创建表的语句(CREATE TABLE)、查询数据的语句(SELECT)、条件筛选(WHERE)以及聚合函数(如COUNT、SUM、AVG)等。 - **应用场景**:构建学生生成绩表(学号,...
总结来说,参加蓝桥杯全国软件大赛,不仅能够提升个人的编程水平和问题解决能力,同时也为参赛者提供了一次难得的与全国优秀学子交流学习的机会。通过真题的练习和比赛的参与,参赛者可以对自身的能力有一个清晰的...
D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试...
D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试...
D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试...
D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试...
D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试...