web程序设计-jsp实验

更新时间:2023-12-24 16:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

WEB程序设计(JSP)实验

计算机科学与信息学院 汪国武

http://blog.csdn.net/bigfive

实验一 JSP实验环境组建与简单JSP应用 1. 开发环境搭建 Step1:安装和设置JDK

以jdk1.6为例,安装位置C:\\Program Files\\Java\\jdk1.6.0_12 创建环境变量:JAVA_HOME为C:\\Program Files\\Java\\jdk1.6.0_12 在建环境变量PATH中添加:%JAVA_HOME%\\bin; 创建环境变量CLASSPATH:

%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;

Step2:安装支持JSP的Web服务器

以Tomcat6.0.29为例,安装位置d:\\Tomcat6

Step3:安装MyEclipse

安装MyEclipse7.0

Step4:设置Tomcat,可以从MyEclipse中直接启动Tomcat6

操作步骤: Window?Preferences?MyEclipse Enterprise Workbench??

MyEclipse?Servers?Tomcat?Tomcat6.x ??Tomcat Server选择Enable

??Tomcat home directory:d:\\tomcat6 ??设置Tomcat运行使用的JDK:展开Tomcat6.x,单击JDK,单击tomcat JDK name:后的

Add,在打开的页面中,单击JRE home后的Directory按钮,选择输入C:\\Program Files\\Java\\jdk1.6.0_12

2.开发和运行JSP程序

??创建Web项目

File?New?Web Project(如:Myjsp) ??新建JSP文件(如firstJsp.jsp) ??编辑JSP文件(可借助DreamWeaver) ??发布项目到Tomcat

右击项目名称Myjsp?MyEclipse?Add and Remove Project Deployments Project:选择Myjsp项目,并单击Add,弹出Project Deployments对话框, 在对话框中,选择server为Tomcat 6.x,并单击Finish ??运行测试

??启动Tomcat 6.x ??运行JSP文件

浏览器中输入:http://localhost:8080/Myjsp/firstJsp.jsp

实验二 JSP语法的应用

实验内容和要求:

1. 实现客户在一个登录页面form.jsp(如图2-1)输入登录信息并单击“确定”后跳转

到另一个页面doForm.jsp(如图2-2)输出“用户名”和“口令”信息。

图2-1

图2-2

要求:分别用下列三种方法实现。

(1) 创建一个JavaBean----User类,该类含有两个属性username和password,给每个属

性增加相应的get和set方法。在doForm.jsp页面中用动作标识实例

化User类对象,再使用动作标识来把客户在form.jsp表单中填写

的值赋给对象,最后用在页面输出结果。

(2) 创建一个JavaBean----User类,该类含有两个属性username和password,给每个属

性增加相应的get和set方法。在doForm.jsp页面中采用Java以jsp脚本代码 (scriptlet)方式实例化User类对象,用setAttribute()函数把对象写入request或

session中,再使用动作标识来把客户在form.jsp表单中填写的

值赋给对象,最后用jsp表达式的方式把对象的信息输出到页面中。

(3) 不创建JavaBean----User类。在doForm.jsp页面中用getParameter()来获取客户在

form.jsp表单中填写的值,最后输出相关信息。

参考答案:

方法(1)

User.java(代码2-1),内容如下: public class User {

private String username; private String password;

public void setUsername(String username) {

this.username = username; }

public String getUsername() {

return username; }

public void setPassword(String password) {

this.password = password; }

public String getPassword() {

return password; } }

form.jsp(代码2-2),内容如下

<%@ page language=\import=\pageEncoding=\%>

doForm.jsp(代码2-3),内容如下

<%@ page language=\import=\pageEncoding=\%>

用户名:

口令:

方法(2)

User.java同代码2-1,form.jsp同代码2-2 doForm.jsp(代码2-4),内容如下:

<%@ page language=\import=\pageEncoding=\%>

<%@page import=\%>

<%

User userInfo=new User();

request.setAttribute(\,userInfo); %>

用户名:<%=userInfo.getUsername() %>
口令:<%=userInfo.getPassword() %>

方法(3)

form.jsp同代码2-2

doForm.jsp(代码2-5),内容如下:

<%@ page language=\import=\pageEncoding=\%>

<%@page import=\%>

用户名:<%=request.getParameter(\) %>
口令:<%=request.getParameter(\) %>

实验三 JSP内置对象的应用

实验内容和要求:

对实验二的内容进行扩展,必须实现以下4个jsp文件,采用jsp+JavaBean实现。 (1) login.jsp:登录页面,如图2-1所示。

(2) doLogin.jsp(无界面):登录处理页面,假定正确的用户名为admin,口令为123。如果用

户名和口令不正确则显示登录错误信息,否则登录成功后,重定向到messageBoard.jsp(留言板页面),可以进行留言。

(3) messageBoard.jsp: 留言板页面,能实现如图3-1所示的留言。

图3-1

(4) showMessage.jsp:显示留言信息页面,如图3-2所示。该页面能显示留言者(必须为

login.jsp页面中输入的用户名)、标题和内容,要求能正确显示图3-1所示的留言内容。提示:留言者的用session保存

图3-2

参考答案:

login.jsp(代码3-1),内容如下

<%@ page language=\import=\pageEncoding=\%>

doLogin.jsp(代码3-2),内容如下

<%@ page language=\pageEncoding=\%> <%

String userName=request.getParameter(\);//获取用户名

session.setAttribute(\,userName); //用户名写入session,显示留言时需要

String passWord=request.getParameter(\);//获取口令 if(userName.equals(\)&&passWord.equals(\)) //用户名和密码正确

response.sendRedirect(\); //重定向到留言页面 else

response.sendError(500,\登陆错误,用户名或密码不正确!\); %>

messageBoard.jsp(代码3-3),内容如下

<%@ page contentType=\%>

showMessage.jsp(代码3-4),内容如下

<%@ page contentType=\%> <%@ page import=\ %>

<%

request.setCharacterEncoding(\%>

显示留言信息

留言者:<%=session.getAttribute(\) %>

留言标题:<%=MyTools.change(message.getTitle()) %>
留言内容:<%=MyTools.change(message.getContent()) %>

Message.java(代码3-5),内容如下//值bean package bean.valuebean;//包名 public class Message {

private String title; //存储留言标题 private String content; //存储留言内容 public String getContent() {

return content; }

public void setContent(String content) {

this.content = content; }

public String getTitle() {

return title; }

public void setTitle(String title) {

this.title = title; }

}

MyTools.java(代码3-6),内容如下//工具bean package bean.toolbean;//包名 public class MyTools {

public static String change(String str) //转换字符串 {

str=str.replace(\str=str.replace(\return str; } }

实验四 Servlet的应用

实验内容和要求:

用Servlet来完成实验三的所有任务,即先登录,然后留言,再显示留言。采用 JSP+JavaBean+Servlet开发模式。

实验步骤如下:

1. 创建登录页面login.jsp

<%@ page language=\import=\pageEncoding=\%>

2. 创建处理登录的Servlet:DoLogin.java,过程如下:

选择项目中src 文件夹,New?Servlet,弹出Create a new Servlet 对话框,设置如下(05 为项目名称)

单击next 后,见下图,只对Servlet/Jsp Mapping URL :作如下修改,单击finish.

此时,web.xml 中应存在如下Servlet 配置信息:

ServletExample firstServlet DoLogin

servlet.DoLogin

DoLogin /DoLogin

其中,/DoLogin行表明,该Servlet 可以用这个URL 访问,

http://localhost:8080/05/DoLogin

DoLogin.java代码如下 package servlet;

import java.io.IOException; import java.io.PrintWriter;

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;

public class DoLogin extends HttpServlet {

//因为登录表单是以get方式提交的,所以重写doGet方法,运行时调用此方法 public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String userName=request.getParameter(\);//获取用户名

HttpSession session = request.getSession();

session.setAttribute(\,userName); //用户名写入session,显示留言时(showMessage.jsp)需要

String passWord=request.getParameter(\);//获取口令 if(userName.equals(\)&&passWord.equals(\)) //用户名和密码正确

response.sendRedirect(\); //重定向到留言页面 else

response.sendError(500,\登陆错误,用户名或密码不正确!\); }

}

3. 创建留言页面messageBoard.jsp

<%@ page contentType=\%>

4. 创建值JavaBean:Message.java同代码3-5

5. 创建工具JavaBean:Mytools.java同代码3-6

6. 创建处理留言的Servlet:DoMessage.java,如下图:

DoMessage.java 代码如下: package servlet;

import java.io.IOException; import java.io.PrintWriter;

import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DoMessage extends HttpServlet {

//因为留言信息是以post方式提交的,所以重写doPost方法,运行时调用此方法

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException { bean.valuebean.Message bean.valuebean.Message();

message=new

message.setTitle(request.getParameter(\));//保存留言标题

message.setContent(request.getParameter(\));//保存留言内容

request.setAttribute(\, message);//将对象message保存到request中

//下面2行实现转发到showMessage.jsp

RequestDispatcher

dispatcher=request.getRequestDispatcher(\);

dispatcher.forward(request, response); } }

7. 创建显示留言页面showMessage.jsp

<%@ page contentType=\%> <%@ page import=\%> <%@page import=\%>

<%Message message=(Message)request.getAttribute(\); %>

显示留言信息

留言者:<%=session.getAttribute(\) %>

留言标题:<%=MyTools.change(message.getTitle()) %>
留言内容:<%=MyTools.change(message.getContent()) %>

实验七 Struts入门

实验内容和要求:

用Struts来完成实验三的所有任务,即先登录,然后留言,再显示留言,要求登录处理

和留言处理均用Struts实现。 参考答案:

准备:新建一个web项目,添加Struts支持(右击项目名称->MyEclipse->Add Struts

Capabilities)。 1.实现登录处理

Step1:打开struts-config.xml文件,切换到design视图,在其区域任一位置右击

->New->Form,Action and JSP,打开创建FormBean对话框(如图7-1)。

??Use case 输入login,然后选定下方的Form Properties标签,并单击Add,添加username

和password两个属性,结果见图7-1;选定JSP标签,设置如图7-2 ,之后单击next 按钮,进入创建Action对话框(如图7-3)。

??选定Forwards标签,创建登录成功-succ和失败-fail (如图7-4)两个Forward,创建结果如图7-5;

??实现LoginAction中的execute()方法

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { LoginForm loginForm = (LoginForm) form;

if(loginForm.getUsername().equals(\)&&loginForm.getPassword().equals(\123\))

{ //将用户名存入session,为了在showMessage.jsp页面中取出

HttpSession session=request.getSession();

session.setAttribute(\, loginForm.getUsername()); return mapping.findForward(\); }

return mapping.findForward(\); }

3. 实现留言处理,如图7-6,7-7,7-8所示 ??实现MessageAction中的execute()方法

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { MessageForm messageForm = (MessageForm) form; request.setAttribute(\, messageForm);

return mapping.findForward(\); }

图7-1添加FormBean

图7-2 创建login.jsp

图7-3创建Action

图7-4

图7-5

图7-6

图7-7

图7-8

两改两建

两改 LoginAction.java MessageAction.java 两建 error.jsp showMessage.jsp

LoginAction.java核心代码

public ActionForward execute(ActionMapping mapping, ActionForm form,

MessageAction.java核心代码

public ActionForward execute(ActionMapping mapping, ActionForm form,

{ }

MessageForm doMessageForm = (MessageForm) form;// TODO HttpSession session=request.getSession(); session.setAttribute(\, doMessageForm); return mapping.findForward(\);

HttpServletRequest request, HttpServletResponse response)

if(dologinForm.getUsername().equals(\)&&dologinForm.getPass

session.setAttribute(\,dologinForm.getUsername() ); }

} else { }

return mapping.findForward(\); return mapping.findForward(\); {

HttpSession session=request.getSession();

word().equals(\))

{

LoginForm dologinForm = (LoginForm) form;// TODO Auto-generated

HttpServletRequest request, HttpServletResponse response)

method stub

Auto-generated method stub

error.jsp代码

<%@ page language=\ contentType=\ pageEncoding=\%> <%

response.sendError(500,\密码或用户名错误\); %>

showMessage.jsp核心代码:

<%@ page language=\ contentType=\ pageEncoding=\%>

<%@page import=\ %> <%

MessageForm tmp=(MessageForm)session.getAttribute(\); %>

username:<%=session.getAttribute(\) %>
title:<%=tmp.getTitle()%>
Content:<%=tmp.getContent() %>

实验八 Struts应用

实验内容和要求:

实验七的内容作如下完善:

1.对用户输入的用户名和口令作验证,要求用户名和口令不能为空,且口令长度至少有6个字符。 2.用EL表达式和JSTL标签显示和处理留言信息(留言者,留言标题,留言内容)

本文来源:https://www.bwwdw.com/article/i0u5.html

Top