jsp的课程设计有哪些
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1]是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 它实现了Html语法中的java扩展(以<%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
中文名
JAVA服务器页面
外文名
Java Server Pages
外语缩写
JSP
本质
动态网页技术标准
倡导公司
Sun Microsystems
在学习这门课之前,JSP对于我来说是一个全新的领域,包括其基础的HTML静态网页的相关知识,数据库方面,服务器的作用都不了解。一开始难免的失意和紧张,觉得这门课对我来说是一种挑战。经过一个学期的课程学习以及近期的基于JSP的网盘课程设计,我对这门课终于有了初步的了解,虽然掌握得很肤浅,但内心很兴奋,很欣喜,新的语言入门很难,但我相信在日后的学习中,我会有一定的突破。
JSP的全称是Java Server Pages,它是一种动态网页技术。我们需要配置的坏境有JDK,Tomcat,还要用到Myeclips这一基础的编程工具。在学习JSP之前,由于没有网页编程的基础,便学习了HTML这种文本标记语言,自己试着去做简单的.静态网站。后来学做JSP动态网站时,就涉及到了多方面的知识,JSP内部对象及内部对象所涉及的方法,JSP与数据库连接,如何去引用数据库。这门课更是巩固了JAVA这一基础编程语言,要求对JAVA掌握的要透彻,每门语言要学扎实,深入理解,都要花费很大的功夫,不是容易的事情。
通过以上知识的学习,对开发简单的动态网页有了些许的眉目,又进一步加深了对JSP的了解。比如我们此次的课设,设计一个网络硬盘,用户可以再上面上传、下载资料,存储基本信息。
JSP在工作时,首先启动服务器,并且保证应用在服务器上,客户通过浏览器发送请求,服务器接收到请求之后,查找有没有这个文件对应的JAVA文件的对象。如果没有这个文件,则需要创建(先把JSP文件转换成JAVA文件,编译成.class文件,加载类并创建对象),然后调用对象的相应方法,方法完成对用户的响应,通常输出的是HTML代码,客户端接收到HTML代码,浏览器解析这个代码生成画面。 在网站设计中,处处离不开Servlet,它充当一个控制器,负责封装数据,处理业务,页面分发。客户端发送请求至服务器,服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器,服务器再将响应返回客户端。网盘开发的整个过程中,都充分体现了MVC原理,MVC是一种
架构模式,该设计模式把系统分为以下三个模块:模型层(Model):包括业务层BIZ、数据持久层DAO、实体层JavaBean ;视图层(View):对应的组件是Jsp或Html文件,此次课设对应的是Jsp文件控制器(Controller):对应的组件是Servlet。MVC模式通过引入控制器的方法将视图层与模型层解耦、分离。Model层开发又涉及到数据库连接池,连接池相当于一个容器,该容器里装有多个连接,每当有用户请求时容器就会自动拿出一个连接对象,当用户用完之后,容器又会将使用完毕的连接对象收回。
Jsp与servlet有一定的区别,Servlet可以看作是HTML的Java代码,而JSP可看作是包含 Java代码的HTML。共同点:JSP和Servlet实际上是一回事。JSP页面最终要转换成Servlet,并进行编译,在请求期间执行的实际上是编译后的Servlet。因此,JSP页面不过是编写Servlet的另一种方式。各自应用的范围:Servlet比较适合于做处理任务,如做业务逻辑;JSP适合于表示任务,如网页制作,生成动态网页。
Jsp开发中,很重要的一点便是实现Tomcat与数据库的链接,通过高级JDBC实现,基于model层的开发。在网盘的设计中也得到了充分的体现,我们写了一个数据库连接类以实现Tomcat与数据库的连接。在使用HTTP协议将客户端的请求传送到服务器端时,通过以下方法。1) get是从服务器上获取数据,post是向服务器传送数据。2) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到,POST方式,数据放置在HTML HEADER内提交。3) 对于get方式,服务器端用request.getQueryString()可以获取GET请求参数的变量值,对于post方式,服务器端用request.getParameter获取提交的数据。
以上便是我学习JSP这门课的总结以及心得。
<%@ page contentType="text/htmlcharset=gb2312"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序――登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 ―― JSP + JDBC实现</h1>
<hr>
<br>
<%
// 判断是否有错误信息,如果有则打印
// 如果没有此段代码,则显示时会直接打印null
if(request.getAttribute("err")!=null)
{
%>
<h2><%=request.getAttribute("err")%></h2>
<%
}
%>
<form action="login_conf.jsp" method="post">
<table width="80%">
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
LOGIN_CONF.JSP
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序――登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 ―― JSP + JDBC实现</h1>
<hr>
<br>
<%!
String DBDRIVER= "oracle.jdbc.driver.OracleDriver"
String DBURL= "jdbc:oracle:thin:@localhost:1521:three"
String DBUSER= "scott"
String DBPASSWORD = "tiger"
Connection conn= null
PreparedStatement pstmt = null
ResultSet rs= null
%>
<%
// 声明一个boolean变量,用于保存用户是否合法的状态
boolean flag = false
// 接收参数
String id = request.getParameter("id")
String password = request.getParameter("password")
%>
<%
String sql = "SELECt name FROM person WHERe id=? and password=?"
try
{
Class.forName(DBDRIVER)
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD)
pstmt = conn.prepareStatement(sql)
pstmt.setString(1,id)
pstmt.setString(2,password)
rs = pstmt.executeQuery()
if(rs.next())
{
// 用户合法
flag = true
// 将用户名保存在session之中
session.setAttribute("uname",rs.getString(1))
}
else
{
// 保存错误信息
request.setAttribute("err","错误的用户名及密码!!!")
}
rs.close()
pstmt.close()
conn.close()
}
catch(Exception e)
{}
%>
<%
// 跳转
if(flag)
{
// 用户合法
%>
<jsp:forward page="login_success.jsp"/>
<%
}
else
{
// 用户非法
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
</center>
</body>
</html>
LOGIN_SUCCESS.JSP
<%@ page contentType="text/htmlcharset=gb2312"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序――登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 ―― JSP + JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<h2>登陆成功</h2>
<h2>欢迎<font color="red" size="12">
<%=session.getAttribute("uname")%>
</font>光临MLDN留言程序</h2>
<h3><a href="list_notes.jsp">进入留言管理页面</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
INSERT.JSP
<%@ page contentType="text/htmlcharset=gb2312"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序――登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 ―― JSP + JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<form action="insert_do.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新留言</td>
</tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author"></td>
</tr>
<tr>
<td>内容:</td>
<td><textarea name="content" cols="30" rows="6"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="添加">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<h3><a href="list_notes.jsp">回到留言列表页</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
INSERT_DO.JSP
<%@ page contentType="text/htmlcharset=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 DBDRIVER= "oracle.jdbc.driver.OracleDriver"
String DBURL= "jdbc:oracle:thin:@localhost:1521:three"
String DBUSER= "scott"
String DBPASSWORD = "tiger"
Connection conn= null
PreparedStatement pstmt = null
%>
<%
// 声明一个boolean变量
boolean flag = false
// 接收参数
String title = request.getParameter("title")
String author = request.getParameter("author")
String content = request.getParameter("content")
%>
<%
// 现在note表中的主键是sequence生成
String sql = "INSERT INTO note VALUES(note_sequ.nextVal,?,?,?)"
try
{
Class.forName(DBDRIVER)
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD)
pstmt = conn.prepareStatement(sql)
pstmt.setString(1,title)
pstmt.setString(2,author)
pstmt.setString(3,content)
pstmt.executeUpdate()
pstmt.close()
conn.close()
// 如果插入成功,则肯定能执行到此段代码
flag = true
}
catch(Exception e)
{}
%>
<%
response.setHeader("refresh","2URL=list_notes.jsp")
if(flag)
{
%>
留言添加成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
else
{
%>
留言添加失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
LIST_NOTES.JSP
<%@ page contentType="text/htmlcharset=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 DBDRIVER= "oracle.jdbc.driver.OracleDriver"
String DBURL= "jdbc:oracle:thin:@localhost:1521:three"
String DBUSER= "scott"
String DBPASSWORD = "tiger"
Connection conn= null
PreparedStatement pstmt = null
ResultSet rs= null
%>
<%
// 如果有内容,则修改变量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(DBDRIVER)
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD)
pstmt = conn.prepareStatement(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","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
UPDATE.JSP
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序――登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 ―― JSP + JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<%!
String DBDRIVER= "oracle.jdbc.driver.OracleDriver"
String DBURL= "jdbc:oracle:thin:@localhost:1521:three"
String DBUSER= "scott"
String DBPASSWORD = "tiger"
Connection conn= null
PreparedStatement pstmt = null
ResultSet rs= null
%>
<%
// 接收参数
int id = 0
try
{
id = Integer.parseInt(request.getParameter("id"))
}
catch(Exception e)
{}
%>
<%
// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0
String sql = "SELECT id,title,author,content FROM note WHERe id=?"
try
{
Class.forName(DBDRIVER)
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD)
pstmt = conn.prepareStatement(sql)
// 设置查询条件
pstmt.setInt(1,id)
rs = pstmt.executeQuery()
%>
<%
if(rs.next())
{
i++
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
id = rs.getInt(1)
String title = rs.getString(2)
String author = rs.getString(3)
String content = rs.getString(4)
%>
<form action="update_do.jsp" method="post">
<table>
<tr>
<td colspan="2">添加新留言</td>
</tr>
<tr>
<td>标题:</td>
<td><input type="text" name="title" value="<%=title%>"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" value="<%=author%>"></td>
</tr>
<tr>
<td>内容:</td>
<td><textarea name="content" cols="30" rows="6"><%=content%></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="id" value="<%=id%>">
<input type="submit" value="更新">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<%
}
else
{
%>
没有发现,要更新的内容!!<br>
请确认要更新的留言是否存在!!<br>
<%
}
%>
<%
rs.close()
pstmt.close()
conn.close()
}
catch(Exception e)
{}
%>
<h3><a href="list_notes.jsp">回到留言列表页</a></h3>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
UPDATE_DO.JSP
<%@ page contentType="text/htmlcharset=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 DBDRIVER= "oracle.jdbc.driver.OracleDriver"
String DBURL= "jdbc:oracle:thin:@localhost:1521:three"
String DBUSER= "scott"
String DBPASSWORD = "tiger"
Connection conn= null
PreparedStatement pstmt = null
%>
<%
// 声明一个boolean变量
boolean flag = false
// 接收参数
String title = request.getParameter("title")
String author = request.getParameter("author")
String content = request.getParameter("content")
int id = 0
try
{
id = Integer.parseInt(request.getParameter("id"))
}
catch(Exception e)
{}
%>
<%
// 更新note表中的数据
String sql = "UPDATE note set title=?,author=?,content=? WHERe id=?"
try
{
Class.forName(DBDRIVER)
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD)
pstmt = conn.prepareStatement(sql)
pstmt.setString(1,title)
pstmt.setString(2,author)
pstmt.setString(3,content)
pstmt.setInt(4,id)
pstmt.executeUpdate()
pstmt.close()
conn.close()
// 如果修改成功,则肯定能执行到此段代码
flag = true
}
catch(Exception e)
{}
%>
<%
response.setHeader("refresh","2URL=list_notes.jsp")
if(flag)
{
%>
留言修改成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
else
{
%>
留言修改失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
DELETE_DO.JSP
<%@ page contentType="text/htmlcharset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>JSP+JDBC 留言管理程序――登陆</title>
</head>
<body>
<center>
<h1>留言管理范例 ―― JSP + JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
// 用户已登陆
%>
<%!
String DBDRIVER= "oracle.jdbc.driver.OracleDriver"
String DBURL= "jdbc:oracle:thin:@localhost:1521:three"
String DBUSER= "scott"
String DBPASSWORD = "tiger"
Connection conn= null
PreparedStatement pstmt = null
%>
<%
// 接收参数
int id = 0
try
{
id = Integer.parseInt(request.getParameter("id"))
}
catch(Exception e)
{}
%>
<%
String sql = "DELETE FROM note WHERe id=?"
boolean flag = false
try
{
Class.forName(DBDRIVER)
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD)
pstmt = conn.prepareStatement(sql)
// 设置删除条件
pstmt.setInt(1,id)
pstmt.executeUpdate()
pstmt.close()
conn.close()
flag = true
}
catch(Exception e)
{}
%>
<%
response.setHeader("refresh","2URL=list_notes.jsp")
if(flag)
{
%>
留言删除成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
else
{
%>
留言删除失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%
}
%>
<%
}
else
{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2URL=login.jsp")
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%
}
%>
</center>
</body>
</html>
-- 创建表
-- 用户表(登陆)、留言表
-- 删除表
DROP TABLE person
DROP TABLE note
-- 删除序列
DROP SEQUENCE note_sequ
-- 创建序列
CREATE SEQUENCE note_sequ
-- 创建person表
CREATE TABLE person
(
id varchar(20) not null primary key ,
name varchar(20) ,
password varchar(20)
)
-- 创建留言表
CREATE TABLE note
(
id int not null primary key , -- sequence
title varchar(20) not null ,
author varchar(20) not null ,
content varchar(50) not null
)
-- 插入测试数据
INSERT INTO person VALUES ('LXH','李兴华','zzzzzz')
INSERT INTO person VALUES ('MLDN','魔乐','mmmmmm')
-- 事务提交
commit
经过一个多月的努力,我终于完成了网上电脑城购物系统。这个系统基本上实现了一般网上购物系统的功能。但是由于经验不足,对在线支付和物流查询的实现功能还没有完善,这算是一个缺陷与遗憾。不过我一定会再接再厉,尽早完善该模块功能。总的来说,在做这个系统的过程中,我查阅了大量关于网上购物系统的相关资料,也按照软件工程的步骤,从需求分析,概要设计,详细设计,数据库设计,再到编码,调试运行等步骤进行。这些经验对我来说非常珍贵。
我觉得最吃力的地方就是在数据库设计这一块,之前我设计了好多表,没有冗余字段,一切都刚刚好,但是我发现当从数据库中取出数据分页显示的时候需要做很多的连接查询,最多的SQL语句居然包含了4个嵌套查询!而我们知道查询的时候最好没有一个嵌套查询,所以我就删除了2个表把它糅合进同一个表中。当然数据流的方向和繁杂的跳转也是一大难点。
一个多月中我学到了很多东西,对我来说,无论是理论还是实践上都是一个较大幅度的提高,可以说是理论到实践的一个飞跃。这次开发经历我了解了软件开发的大体过程通过这次综合实验也使我知道作软件开发的辛苦,首先要有足够的耐心,要勇于面对密密麻麻的代码,无数遍的调试,和无数遍的修改,虽然过程艰辛但是,当你调试成功时,你就会感受到这些努力的意义以及成功的喜悦。软件开发,还需要注意借鉴,查看已有的例子的代码,这样可以节省大量的时间,同时也实现了代码重用;还有就是编写一个比较大的项目时应该先将所有的业务流程熟悉透以及要设计一个好的数据库,否则就会在开发中删删改改,浪费时间和精力。此外,我知道了基础课的重要,要学好一门编程语言,一定要动手,实践是最好的方法。
总的来说,对我个人而言,这次做这个购物系统的确提高了我自己的动手能力,也让我认识到了自己的不足,同时多亏了在开发网站的过程中邝老师的指导以及同学们给予的帮助,使我顺利地完成了此次课程设计,在此我对你们表示衷心的感谢!
是入门了解J2EE的一个不错的选择,讲的都很基本,而且还有些不错的例子。
《j2ee核心设计模式》
强烈推荐
当然我还是推荐关于Weblogic的书,因为Weblogic是对J2EE规范实现最好的服务器
书就不推荐了,你去www.bea.com.cn或者www.bea.com,上面很多文档
学习JSP 语言推荐用书
1 JSP 动态网页编程技术
电子工业出版社 王先国主编 ¥25.0
2 JSP网络开发入门与实践
人民邮电出版社 智源科技 吴建 张旭东 编著 ¥52.0
3 JSP动态网页基础教程
人民邮电出版社 张晓蕾 主编 ¥24.0
4 JSP动态网站设计实例教程
冶金工业出版社 吴其庆 ¥30.0
5 HEAD FIRST SERVLETS &JSP-重视大脑的学习指南-通过SCWCD考试之路(中文版)
中国电力出版社 巴萨姆 译 者:苏钰函 ¥98.0
6 JSP网络开发技术与整合应用(配光盘)
清华大学出版社 张洪伟 ¥59.8
7 JSP 网络编程:基于数据驱动的 Web 开发
电子工业出版社 杜秀川等编著 ¥48.0
8 JSP 网站开发典型模块与实例精讲
电子工业出版社 李振捷等编著 ¥50.0
9 JSP程序设计实用教程
西南师范大学出版社 陈峰 ¥28.0
10 JSP 应用开发详解(第三版)(配光盘)(Java 开发专家)
电子工业出版社 刘晓华 ¥58.0
11 网络系统开发实例精解(配光盘)(JSP版)(开发专家之数据库)
电子工业出版社 汪孝宜 ¥39.8
12 JSP动态网站开发与实例(第3版)
清华大学出版社 荣钦科技 ¥48.0
13 JSP 课程设计
电子工业出版社 黄明等编著 ¥19.8
14 JSP 2.0应用教程
清华大学出版社 陈旭东 ¥39.0
15 精通 JSP+XML+CSS 网络开发混合编程
电子工业出版社 卢菊平等编著 ¥45.8
16 JSP应用教程-高等职业教育计算机专业推荐教材
机械工业出版社 李咏梅 ¥18.0
17 JSP数据库系统开发案例精选
人民邮电出版社 明日科技 王国辉 王易 编著 ¥49.0
18 JSP实用教程
清华大学出版社 张大治 ¥28.0
19 JSP开发实例完全剖析
中国电力出版社 者:李曙光等编著 ¥35.0
20 Java Web 开发详解——XML+XSLT+Servlet+JSP 深入剖析与实例应用
电子工业出版社 孙鑫编著 ¥99.0
21 精通 JSP 编程
电子工业出版社 赵强编著 ¥49.0
22 JSP 2.0技术从入门到精通
中国铁道出版社 余昀 ¥39.0
23 JSP数据库高级教程
清华大学出版社 刘彬 ¥38.8
24 JSP数据库系统开发完全手册
人民邮电出版社 明日科技 王国辉 李文立 杨亮 编著 ¥52.0
25 JSP高级程序设计
人民邮电出版社 Vivek Chopra Jon ¥55.0
26 JSP通用模块及典型系统开发实例导航
人民邮电出版社 求是科技 王夕宁 王晓平 编著 ¥44.0
27 21世纪高等院校课程设计丛书-JSP课程设计案例精编
中国水利水电出版社 杨昭 ¥28.0
28 JSP网络应用开发例学与实践
清华大学出版社 张军 ¥32.0
29 网站开发新动力:用JSP轻松开发Web网站(第二版)
北京希望电子出版社 黄理 李积善 曹林有等 ¥46.0
30 JSP程序设计教程
人民邮电出版社 向学哲 主编 ¥25.0
31 JSP应用教程
清华大学出版社 石志国 ¥34.0
32 动态Web数据库技术——基于JSP和XML技术实现
中国水利水电出版社 王红 主编 ¥28.0
33 JSP程序设计
人民邮电出版社 张文静 林琪等 ¥45.0
34 JSP+Oracle 数据库组建动态网站经典实例
电子工业出版社 赵光等编著 ¥35.0
35 JSP实用简明教程
清华大学出版社 程志艳 ¥35.0
36 JSP 组建动态网站基础与实例操作
电子工业出版社 李长林等编著 ¥32.0
37 专家门诊——JSP开发答疑200问
人民邮电出版社 马斗 邱哲 王俊标 ¥52.0
38 JSP网络编程技术与实例
人民邮电出版社 四维科技 杨易 编著 ¥49.0
39 JSP+Oracle动态网站开发实例精选
清华大学出版社 刘中兵 ¥42.0
40 JSP 网络编程从基础到实践
电子工业出版社 邓子云等编著 ¥49.0
41 JSP 网站开发四“酷”全书:新闻、论坛、电子商城、博客
电子工业出版社 万峰科技编著 ¥49.0
42 JSP应用开发技术
人民邮电出版社 柳永坡 刘雪梅 赵长海 编著 ¥52.0
43 JSP 案例开发集锦
电子工业出版社 王诚梅等编著 ¥35.0
44 Java Servlet &JSP经典实例
中国电力出版社 朱涛江 邹红霞 林琪 (美)Bruc ¥86.0
45 JSP动态网站设计教程
冶金工业出版社 吴其庆 ¥30.0
46 Dreamweaver MX 2004 &JSP动态网页编程完全自学手册
人民邮电出版社 龙马工作室 编著 ¥48.0
47 从零开始——JSP动态网页制作基础培训教程
人民邮电出版社 老虎工作室 张琴 张千帆 编著 ¥32.0
48 印度优质IT职业教育教学用书-JSP开发技术(含指导手册)
高等教育出版社 王强 ¥25.5
49 JSP 案例开发
中国水利水电出版社 魏茂军 张文建 姜云善 刘全民 等编 ¥38.0
50 JSP 软件工程案例精解
电子工业出版社 鲁晓东等编著 ¥39.0
51 JSP 数据库开发实例精粹
电子工业出版社 汪孝宜等编著 ¥39.0
52 JSP设计(第三版)
中国电力出版社 林琪 ¥79.0
53 JSP基础教程
清华大学出版社 耿祥义 ¥22.0
54 JSP设计(第二版)
清华大学出版社 Hans Bergsten 著 汪青 ¥74.0
55 JSP应用教程
北方交通大学出版社 石志国 ¥34.0
56 JSP 编程指南(第三版)
电子工业出版社 (美)布朗著 白雁等译 ¥51.0
57 JSP+Oracle组建动态网站实例精讲
人民邮电出版社 龙马工作室 编著 ¥42.0
58 JSP 程序设计
高等教育出版社 蒋文蓉 ¥24.5
59 JSP Web应用教程
清华大学出版社 朱敏 朱晴婷 李媛媛 ¥19.0
60 Servlet与JSP核工业心编程(第2版)
清华大学出版社 [美]Marty Hall larr ¥59.0
61 JSP实用案例教程
清华大学出版社 冯燕奎 赵德奎 ¥35.0
62 JSP 2.0 技术手册
电子工业出版社 林上杰等编著 ¥59.0
63 JSP 应用开发详解(第二版)
电子工业出版社 飞思科技产品研发中心 ¥55.0
64 JSP编程技术与应用
高等教育出版社 方逵 ¥28.4
65 JSP实用教程
清华大学出版社 耿祥义 张跃平 ¥32.0
66 JSP 应用开发详解
电子工业出版社 飞思科技产品研发中心 ¥49.0
67 ASP+和JSP网络技术应用
国防工业出版社 懂欣 ¥35.0
68 JSP从入门到精通
电子工业出版社 美 Cook,T.著 谷雨译 ¥62.0
69 JSP程序设计指南
清华大学出版社 天宏工作室 ¥52.0
70 Servlet与JSP权威指南
机械工业出版社 (美)Marty Hall 著 ¥55.0
71 JSP 编程指南(第二版)
电子工业出版社 美 Brown,S.著 王军等译 ¥100.0
72 JSP 标志库编程指南
电子工业出版社 美 Brown,S.著 邱仲潘等译 ¥37.0
73 Servlet 与JSP 权威指南
机械工业出版社 (美)Marty Hall ¥55.0
74 JSP高级开发与应用
科学出版社,科海电子出版 (美)David M.Geary 著 ¥42.0
75 JSP 站点设计编程指南
电子工业出版社 美Duffey,K.等著 王军等译 ¥75.0
76 网络编程语言 JSP 实例教程
电子工业出版社 周颢编著 ¥33.0
77 JSP网站编程教程
北京希望电子出版社 屈辉立、陈可明、石武信 ¥39.0
78 JSP入门与提高
清华大学出版社 杨学瑜 王志军 刘同利 编著 ¥24.0
79 JSP和Servlet程序设计使用专辑
机械工业出版社 程显华译 ¥58.0
80 JSP Web编程指南
电子工业出版社 美 Falkner,J.著 司光亚等
81 JSP设计
中国电力出版社 Hans Bergsten著 何健辉 ¥59.0
82 JSP动态网页新技术
中国铁道出版社 普悠玛数位科技 ¥36.0
83 JSP快速高效开发利器-Dreamweaver UltraDev
清华大学出版社 许增伟等 ¥42.0
84 JSP 教程
电子工业出版社 飞思科技研发中心 ¥29.0
85 JSP 速成教程
机械工业出版社 Jose Annunziato ¥48.0
86 JSP编程技巧
机械工业出版社 清宏计算机工作室 ¥41.0
87 JSP 编程起步
机械工业出版社 清宏计算机工作室 ¥30.0
88 JSP 技术大全
机械工业出版社 (美)Phil Hanna ¥59.0
89 UitraDev4/JSP/XML高级实例教程
北京希望电子出版社 网星工作室 ¥58.0
90 UitraDev4/JSP/XML高级实例教程
北京希望电子出版社 译作者: 网星工作室 ¥58.0
91 JSP 技术揭密
清华大学出版社 Decoder ¥38.0
92 JSP 实用编程实例集锦
清华大学出版社 马文刚等 ¥27.0
93 JSP、Serviets 与 MySQL 开发指南
电子工业出版社 黄习福等译 ¥39.0
94 JSP深入编程(1CD)
北京希望电子出版社 黄理 ¥42.0
95 JSP高级编程
北京希望电子出版社 黄理 ¥55.0
96 Servlet与JSP核心技术
人民邮电出版社 [美]Marty Hall ¥55.0
97 JSP深入编程
北京希望电子出版社 北京大学com工作室 ¥42.0
98 Servlet/JSP程序设计技术与实例
人民邮电出版社 邹华 方卫宁 邹蓉 ¥38.0
99 JSP高级编程
北京希望电子出版社 译作者: 黄理 ¥55.0
100 JSP 时尚编程百例
机械工业出版社 网冠科技 ¥36.0
101 WebSphere 环境下Serutet 与JSP 高级编程
机械工业出版社 Ueti Wahti ¥38.0
102 不编程开发 ASP和 JSP——Dream weaver Ultra Dev4 使用技巧
机械工业出版社 启明星工作室 ¥42.0
103 精通JSP编程技术
人民邮电出版社 武延军 黄飞跃 ¥48.0
104 JSP完全探索
中国青年出版社 (韩)李载甲 崔在明 ¥69.0
105 XML/JSP Programming Guide网页编程教程
北京希望电子出版社 吴艾 ¥46.0
106 JSP编程基础及应用实例集锦
人民邮电出版社 柏亚军 ¥38.0
107 JSP动态网站技术入门与提高
人民邮电出版社 太阳工作室 ¥39.0
108 JSP数据库编程指南
北京希望电子出版社 布雷恩·赖特 ¥38.0
109 深入JSP网络编程
清华大学出版社 雨阳隆春等 ¥52.0
110 JSP 程序设计精彩实例
清华大学出版社 姜晓明等 ¥28.0
111 疯狂站长之JSP
中国水利水电出版社 郭宏 刘文革 ¥25.0
112 JSP应用程序开发指南
科海电子出版社,科学出版 [美]Paul Colton著 章明 ¥34.0
113 JSP/Servlet—基于Java的最新网站建设工具
清华大学出版社 王迪华、刘臣通等 ¥42.0
114 JSP/HTML编程实作教程
北京希望电子出版社 张洪波、张黎明、单银根 ¥35.0
115 最新JSP入门与应用
中国铁道出版社 荣钦科技主笔室 ¥35.0
116 JSP 网站开发技术
清华大学出版社 徐进明 ¥28.0
117 Java 开发指南--Servlets 和 JSP 篇
电子工业出版社 邱仲潘等译 ¥33.0
118 快学易用JSP
北京邮电大学出版社 郭健等 ¥36.0
119 JSP程序设计实务入门
中国铁道出版社 李建国等 ¥40.0
120 JSP 编程指南
电子工业出版社 美Karl Avedal著 黎文等译 ¥85.0
121 JSP 程序设计与实例分析教程
清华大学出版社 姜晓铭 陈武 ¥38.0
122 JSP网络开发技术
人民邮电出版社 杨珏 ¥39.0
123 JSP交互网站实务经典
中国青年出版社 杜邦杰 ¥49.0
124 网站JSP后台解决方案
人民邮电出版社 施汝军 ¥50.0
125 JSP即时应用
人民邮电出版社 Paul Tremblett 著 ¥57.0
126 JSP程序设计实务
中国青年出版社 (台)杨 光 沈建男 ¥48.0
127 JSP 完全实例教程
电子工业出版社 贾更新等 ¥32.0
128 网站开发新动力:用JSP轻松开发Web网站
北京希望电子出版社 黄理、李积善、曹林有、张勇 ¥50.0
129 JSP 网络开发实务(全息)
电子工业出版社 徐国平等编著 ¥42.0
130 JSP在数据库中的应用与开发(英文版)
北京希望电子出版社 [美]Brian Wright、Mi ¥55.0
131 新概念JSP网络应用教程
科海电子出版社 靳慧峰 ¥39.0
132 JSP程序设计实务
中国青年出版社 沈建男 ¥48.0
133 JSP网络程序设计
人民邮电出版社 鲁夫创意工作室 何雄 ¥32.0
134 JSP编程入门与应用实例
清华大学出版社,科海电子 李巍 ¥24.0
135 JSP动态网站开发实用教程
机械工业出版社 宝贝工作室 ¥32.0
136 JSP 技术揭密
清华大学出版社 东名等 ¥38.