Web程序设计JSP实验文档格式.docx
《Web程序设计JSP实验文档格式.docx》由会员分享,可在线阅读,更多相关《Web程序设计JSP实验文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
![Web程序设计JSP实验文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/3/5fe316ed-2f45-43a7-80b5-87c5651c5b77/5fe316ed-2f45-43a7-80b5-87c5651c5b771.gif)
选择Myjsp项目,并单击Add,弹出ProjectDeployments对话框,
在对话框中,选择server为Tomcat6.x,并单击Finish
■运行测试
■启动Tomcat6.x
■运行JSP文件
浏览器中输入:
http:
〃localhost:
8080/Myjsp/firstJsp.jsp
3.编写一个JavaScript程序,在JSP页面上输出当前日期。
实验二JSP语法的应用
实验内容和要求:
1.实现客户在一个登录页面form,jsp(如图2-1)输入登录信息并单击“确定”后跳转
到另一个页面doForm.jsp(如图2-2)输出“用户名”和“口令”信息。
用户名:
丽
密码:
图2-1
abc口令;
123
图2-2
要求:
分别用下列三种方法实现。
(1)创建一个JavaBeanUser类,该类含有两个属性username和password,给每个属
性增加相应的get和set方法。
在doForm.jsp页面中用<jsp:
useBean>动作标识实例化User类对象,再使用<jsp:
setProperty>动作标识来把客户在form,jsp表单中填写的值赋给对象,最后用〈jsp:
getProperty>在页面输出结果。
(2)创建一个JavaBeanUser类,该类含有两个属性username和password,给每个属
在doForm.jsp页面中采用Java以jsp脚本代码(scriptlet)方式实例化User类对象,用setAttribute()函数把对象写入request或session中,再使用<jsp:
setProperty>动作标识来把客户在form,jsp表单中填写的值赋给对象,最后用jsp表达式的方式把对象的信息输出到页面中。
(3)不创建JavaBeanUser类。
在doForm.jsp页面中用getParameter()来获取客户在
form,jsp表单中填写的值,最后输出相关信息。
实验三JSP内置对象的应用
对实验二的内容进行扩展,必须实现以下4个jsp文件,采用jsp+JavaBean实现。
(1)login,jsp:
登录页面,如图2T所示。
(2)doLogin.jsp(无界面):
登录处理页面,假定正确的用户名为admin,口令为123。
如果用户名和口令不正确则显示登录错误信息,否则登录成功后,
重定向到messageBoard.jsp(留言板页面),可以进行留言。
(3)messageBoard.jsp:
留言板页面,能实现如图3T所示的留言。
▼|贮一http:
"
Whost:
T今c]百度搜索
文件®
I编辑⑥查看的收藏夹R)工具①帮助®
\100%
/
图3-1
(4)showMessage.jsp:
显示留言信息页面,如图3-2所示。
该页面能显示留言者(必须为login.jsp页面中输入的用户名)、标题和内容,要求能正确显示图3T所示的留言内容。
提示:
留言者的用session保存
图3-2
实验四Servlet的应用
用Servlet来完成实验三的所有任务,即先登录,然后留言,再显示留言。
采用JSP+JavaBean+Servlet开发模式。
实验步骤如下:
1.创建登录页面login.jsp
pagelanguage="
java"
import="
ja\autil.★“pageEncoding="
gb23I2飞〉
<
html>
head>
<
/head>
body>
formaction=vDoLoginf,method=Hget**>
!
―注意此处设为get方法一>
inputtype="
text"
name=Husername7>
br>
口令:
inputtype=^password,"
name=npassword
inputtype=value="
提交
inputtype=Hreset"
value="
重置7>
/form>
/body>
/html>
2.创建处理登录的Servlet:
DoLogin.java,过程如下:
选择项目中src文件夹,NewServlet,弹出CreateanewServlet对话框.设置如下(05为项目名称)
单击next后,见下图,只对Servlet/JspMappingURL:
作如下修改,单击finish.
此时,web.xml中应存在如下Servlet配置信息:
servlet>
description>
ServletExainple<
/description>
display-name>
firstServ1et<
/disp1ay-name>
servlet-name>
DoLogin<
/servlet-name>
servlet-class>
servlet.DoLogin<
/servlet-class>
/servlet>
serv1et-mapping>
servlet-naine>
url-pattern>
/DoLogin<
/url-pattern>
/servlet-mapping>
其中,<
url-pattern〉/DoLogin〈/url-pattern>
行表明❷该Servlet可以用这个URL访问,http:
//localhost:
8080/05/DoLogin
DoLogin.java代码如下
packageservlet;
import
java.
o.lOException;
o.PrintWriter;
javax
servlet.ServletException;
seiwlet.http.HttpServlet;
servlet.http.HttpServletRequest;
servlet.http.HttpServletResponse;
servlet.http.HttpSession;
publicclassDoLoginextendsHttpServlet{
〃因为登录表单是以get方式提交的,所以重写doGet方法,运行时调用此方法
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,lOException{
StringuserName=request.getParameter(nusernamew);
//获圾回户名
HttpSessionsession=request.getSessionO;
session.setAttribute(Mnamew,userName);
〃用户名写入session,显示留言时(showMessage.jsp)需要
Sti'
ingpassword=request,getParameter(*'
passwordw);
/获号工口令
if(userName.equals(MadminM)&
&
passWord.equals("
123"
))〃用户名和密码正确
response.sendRedirectCmessageBoard.jsp"
);
//重定向到留言页面
else
response.sendError(500,"
登陆错误,用户名或密码不正确!
);
)
3.创建留言页面messageBoard.jsp
?
二卷pagecontentType=ntext/html;
charset=gb2312%>
formaction=^DoMessage'
9method="
postX、一注意此处设为post方法一〉
tableborder=nl"
rules=ffrows
trheight—
td>
留言标题:
/td>
inputtype=°
text"
name="
title”size="
35个<
/tr>
tr>
留言内容:
textareaname="
contentHrows=cols=H34fl>
/textareaX/td>
tralign=Hcentervheight="
3。
>
tdcolspan=
suZ汹〃"
value="
提交,
inputtype=Hreset*value="
直爱》
/table>
/fonn>
4.创建值JavaBean:
Message,java同代码3-5
5.创建工具JavaBean:
Mytools.java同代码3-6
6.创建处理留言的Servlet:
DoMessage.java,如下图:
publicclassDoMessageextendsHttpServlet{
〃因为留言信息是以post方式提交的,所以重写doPost方法,运行时调用此方法
publicvoiddoPost(HttpServletRequestrequest.HttpSeiwletResponseresponse)throwsServletException,lOException{
bean.valuebean.Messagemessage=newbean.valuebean.Message();
message.setTitie(request,getParameter(wtitlen));
/保存留言标题
message.setContent(request.getParameter(^contentM));
//保存琦t:
内容
request.setAttribute(MmsgM,message);
〃将对象message保存到request中
〃下面2行实现转发到showMessage.jsp
RequestDispatcherdispatcher=request.getRequestDispatcher(^showMessage.jsp"
dispatcher,forward(request,response);
})
7.创建显示留言页面showMessage.jsp
%@pagecontentType=ntext/html:
%@pageimport=Hbean.toolbean.MyTools%>
%@pageimport=nbean.valuebean.Message
Messagemessage=(Message)request.getAtti'
ibute(wmsgn);
%>
〈title)显示留言信息
留言者:
%=session.getAttribute(wnamen)%>
留言标题:
%=MyTools.change(message.getTitleO)%>
留言内容:
%=MyTools.change(message.getContent())%>
实验五JSP访问数据库的应用
实验要求:
采用JSP+Servlet+JavaBean架构,设计通过下列JSP页面访问数据库(如表5-1),具体要求如下:
1.添加用户页面(AddUser.jsp),如图5T所示;
2.删除用户页面(Delete,jsp),如图5T所示;
3.查找和修改用户页面(SearchAndModify.jsp),如图5-3所示。
图5-1添加用户页面
图5-2删除用户页面
|n|x|
个查11^]修改用户-YindovsInternetExplorer
▼[园]http:
8CB0/WyJsp/SearchAndModi£
yjsp
文件⑥编辑也)查看9收藏夹@)工具①帮助国)
查询和修改用户
输入查询的用户名:
的lEWEI
第入.亏户名后,里吉登这三户,找到见在下面复示结果,否史显示三户不考在
I
密码:
II
修改用户只允许整改专户匚令,因亏户名为关金宝
图5-3查询和修改用户页面
1.准备需要访问的数据库
■下载并安装MySQL5.0
■CopyMySQL5.0驱动mysql-connector-java-5.0.8-bin.jar到%丁0\£
八丁%\1诂文件夹下
■创建数据库及表:
数据库的设计如下表:
数据库采用MySQL5.0,数据库名:
db,表名:
user(用户表)
表57数据库的用户表
序号
列名
数据类型
长度
主键
允许空
默认值
说明
1
username
varchar
40
是
否
用户名
2
password
口令
创德过程如下:
(可选择使用MySQL的数据库管理和开发工具Navicat和MySQL-Front等)Stepl:
进入MySQL程序的MySQLCommandLineClient界面,如下图所示
分别执行下列命令:
〃支持中文
①创建数据库:
CREATEDATABASE
CHARACTERSET%tf8'
COLLATE'
utf8__general_cir;
USEDB;
②速表:
CREATETABLE'
users、(
username'
varchar(20)NOTNULLPRIMARYKEY.
password'
varchar(20)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
2.开发过程如下:
创建值JavaBean:
User.java,内容如下:
packagevalueBean;
publicclassUser{
privateStringusername;
//用户名
privateStringpassword;
//口令publicUserO(
this.username=*n;
this.password/"
;
}
publicvoidsetUsername(Stringusername){this.username=username;
publicStringgetUsernameO{returnusername;
publicvoidsetPassword(Sti'
ingpassword){this.password=password;
publicStringgetPasswordO{
returnpassword;
创建访问数据库的类一AccessUserFromDB.java,内容如下:
packagetoolBean.db;
importjava.sql.*;
importvalueBean.User;
publicclassAccessUserFromDB{
privatestaticConnectionconn=null;
privatestaticStatementstmt=null;
〃构造函数中完成对数据库进行初始化
publicAccessUserFromDB(){
〃创建连接
conn=this.getConnectionO;
try{
〃创建Statement
stmt=conn.createStatement();
}catch(SQLExceptione){
e.printStackTraceO;
〃将对象user添加到表中
publicvoidAdd(Useruser)throwsSQLException
{
Stringsql=uINSERTINTOuser(username,password)VALUES,"
+user.getUsername()+M*M+user.getPassword()+MM;
stmt.executeUpdate(sql);
〃根据用户名(关键字)从数据库删除相应的记录
publicvoidDelete(Stringusername)throwsSQLException
(
Stringsql=nDeleteFromuserWhereusername='
+username+"
'
stmt.executeUpdate(sql);
〃修改数据库中的user
publicvoidUpdate(Useruser)throwsSQLException
Stringsql=,rUPDATEusersetpassword:
+user.getPassword()+r,*whereusername=,M+user.getUsername()+r,stmt.executeUpdate(sql);
〃根据用户名称(关键字)从数据库中查找记录,并将找到的记录写入对象user中返回publicUsersearchByUsername(Stringusername)throwsSQLException
Useruser=newUser();
Stringsql=,,select*fromuserwhereusername=ru+username+Mr0;
ResultSetrs=stmt.executcQuery(sql);
while(rs.next())
Stringname=rs.getString(MusernameM);
if(name,equals(username))
〃将从数据库查找得到的记录存入对象user中
user.setUsername(name);
user.setPassword(rs.getString(°
password°
));
if(rs!
=null)
rs.close();
returnuser;
returnnull;
〃查找不到返回null
〃根据用户判断该记录是否存在
publicbooleanexists(Stringusername)
booleanrtn=false;
if(searchByUsername(username)!
=nul1)
rtn=true;
(catch(SQLExceptione){
e.printStackTrace();
returnrtn;
/〃建立与数据的连接
privateConnectiongetConnectionO
StringdriverClass=,,com.mysql.jdbc.Driver0;
Stringurl=〃与创建数据库的代码结合,保证访问数据库时不出现乱码ujdbc:
mysql:
//localhost:
3306/db?
useUnicode=true&
characterEncoding=UTF-8,F;
Stringusername="
root"
Stringpassword="
try)
Class.forName(driverClass);
//加载数据库驱动
}catch(ClassNotFoundExceptione){
conn=DriverManager.getConnection(ur1,username,password);
〃建立连接}catch(SQLExceptione){
System,out.print("
数据库连接失败!
”);
returnconn;
〃关闭与访问数据库有关连接
protectedvoidfinalize()
if(stmt!
stmt.close(