java2ee实验七.docx

上传人:b****7 文档编号:10812368 上传时间:2023-02-23 格式:DOCX 页数:18 大小:223.70KB
下载 相关 举报
java2ee实验七.docx_第1页
第1页 / 共18页
java2ee实验七.docx_第2页
第2页 / 共18页
java2ee实验七.docx_第3页
第3页 / 共18页
java2ee实验七.docx_第4页
第4页 / 共18页
java2ee实验七.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

java2ee实验七.docx

《java2ee实验七.docx》由会员分享,可在线阅读,更多相关《java2ee实验七.docx(18页珍藏版)》请在冰豆网上搜索。

java2ee实验七.docx

java2ee实验七

盐城师范学院信息科学与技术学院

实验报告

课程名称J2EE企业级应用开发实例教程2009-2010学年第二学期

班级

0919

学号

09418934

姓名

陆海雷

实验地点

平西

实验日期

2012.3.28

实验学时

4

实验名称

实验七Web配置实验

实验类型

□验证性□综合性设计性

实验目的:

熟悉ServletContext的功能和方法

掌握Web应用配置

掌握Web级初始参数和Servlet初始参数的获取方法

掌握转发的原理和实现方法

实验环境:

(包括软件平台和硬件平台)

JDK+Eclipse+MyEclipse+Tomcat

 

实验过程

1.新建一个WebProject,名为login1。

2.编写登录JSP页面:

/login.jsp,显示登录表单,

右击工程下的“WebRoot”目录,在弹出式菜单中选择【New】|【JSP】(或者【New】|【File】,保存文件名为*.jsp),设置JSP文件名为login.jsp,可以选择产生的JSP的模板,从下面的下拉列表中可以选择。

单击【Finish】,打开login.jsp文件,代码如下:

<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

MyJSP'login.jsp'startingpage

--

-->

登陆界面

ID:

密码:

3编写登录处理Servlet。

包:

cn.yctu.cs.javaee.experiment.ch07

类名:

LoginAction

映射地址:

/login.action

功能:

(1)取得ID和密码

(2)如果ID或密码为空,重定向到login.jsp页面

(3)ID写入Session

(4)使用ServletContext对象存储所有登录用户ID列表(存储方式自己设计)

(5)转发到主页JSP:

/main.jsp

packagecn.yctu.cs.javaee.experiment.ch07;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.sql.*;

importjava.util.ArrayList;

importjava.util.List;

importjavax.servlet.http.Cookie;

importjavax.servlet.ServletConfig;

importjavax.servlet.ServletContext;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

publicclassLoginActionextendsHttpServlet{

//定义数据库连接对象

privateConnectioncn=null;

privateStringdriverName=null;//数据库驱动器

privateStringurl=null;//数据库地址URL

privatebooleancheck;

publicLoginAction(){

super();

}

publicvoiddestroy(){

super.destroy();//Justputs"destroy"stringinlog

//Putyourcodehere

}

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

//取得用户注册表单提交的数据

Stringuserid=request.getParameter("userid");//用户userid

Stringpassword=request.getParameter("password");//密码

//判断登录帐号为空,则自动跳转到注册页面

if(userid!

=null&&password!

=null&&userid.trim().length()>0&&password.trim().length()>0){

setValue(request,"password",password);

setValue(request,"id",userid);

Cookiecookie01=newCookie("userid",userid);

response.addCookie(cookie01);

Stringsql="select*fromuserwhereuserid=?

andpassword=?

";

Connectioncn=null;

booleancheck=false;

try{

Class.forName("com.mysql.jdbc.Driver").newInstance();

cn=DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/scott");

PreparedStatementps=cn.prepareStatement(sql);

ps.setString(1,userid);

ps.setString(2,password);

ResultSetrs=ps.executeQuery();

if(rs.next()){

check=true;

}

rs.close();

ps.close();

ResultSetMetaDatarsmd=rs.getMetaData();

introw=rsmd.getColumnCount();

if(row<=0){

response.sendRedirect("login.jsp");

}else{

request.getRequestDispatcher("main.action").forward(request,response);

}

}catch(Exceptione){

System.out.println("错误:

"+e.getMessage());

response.sendRedirect("login.jsp");

}finally{

try{

cn.close();

}catch(Exceptione){

}

}

}

if(check)

{

HttpSessionsession=request.getSession(true);

session=request.getSession(true);

//将会话对象保存到会话对象

session.setAttribute("userid",userid);

//获取Web上下文对象

ServletContextapplication=this.getServletContext();

//取得用户在线列表

ListuserList=(List)application.getAttribute("userList");

if(userList==null)

{

//用户首次登陆

userList=newArrayList();

application.setAttribute("userList",userList);

}

else{

//非首个用户登陆,增加到用户列表中

userList.add(userid);

}

response.sendRedirect("main.jsp");

}

else{

response.sendRedirect("login.jsp");

}

}

privatevoidsetValue(HttpServletRequestrequest,Stringkey,StringsetValue){

request.getSession().setAttribute(key,setValue);}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

publicvoidinit(ServletConfigconfig)throwsServletException{

super.init(config);

//取得Servlet配置的数据库出事参数

//driverName=config.getInitParameter("driverName");

driverName="com.mysql.jdbc.Driver";

//url=config.getInitParameter("url");

url="jdbc:

mysql:

//localhost:

3306/scott";

//Stringuser=config.getInitParameter("user");

Stringuser="root";

//Stringpassword=config.getInitParameter("password");

Stringpassword="123";

try{

Class.forName(driverName);

cn=DriverManager.getConnection(url,user,password);

}catch(Exceptione){

System.out.println("取得数据库连接错误:

"+e.getMessage());

}

}

}

4.编写OA系统主页JSP:

/main.jsp,如图7-2所示。

(1)取得保存在Session对象中的登录账号

(2)取得ServletContext中保存的在线用户ID列表,并显示

(3)显示到注销的超链接

(4)单击“注销”到注销处理Servlet

<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

MyJSP'main.jsp'startingpage

--

-->

OA系统主页


登录帐号:

<%Stringid=(String)request.getSession().getAttribute("userid");request.setAttribute("id",id);%>

当前用户ID列表:

<%Listuserlist=(List)application.getAttribute("userList");

for(Objecto:

userlist){

out.print((String)o);

out.print("
");}%>


注销

 

2、5.编写注销处理Servlet。

包:

cn.yctu.cs.javaee.experiment.ch07

类名:

LogoutAction

映射地址:

/logout.action

功能:

(1)从ServletContext中取出登录ID列表,删除当前登录ID,剩余登录ID列表保存回ServletContext中。

(2)销毁会话对象

(3)重定向到登录页面/login.jsp

packagecn.yctu.cs.javaee.experiment.ch07;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.sql.*;

importjava.util.ArrayList;

importjava.util.List;

importjavax.servlet.http.Cookie;

importjavax.servlet.ServletConfig;

importjavax.servlet.ServletContext;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

publicclassLogoutActionextendsHttpServlet{

publicLogoutAction(){

super();

}

publicvoiddestroy(){

super.destroy();//Justputs"destroy"stringinlog

//Putyourcodehere

}

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.getSession().removeAttribute("userid");

request.getSession().removeAttribute("password");

HttpSessionsession=request.getSession(false);

if(session!

=null)

{

session.invalidate();

Stringuserid=(String)session.getAttribute("userid");

//获取Web上下文对象

ServletContextapplication=this.getServletContext();

ListuserList=(List)application.getAttribute("userList");

if(userList!

=null){

//用户列表中删除注销的用户帐号

userList.remove(userid);

}

//销毁会话对象

session.invalidate();

}//重定向到登录页面

response.sendRedirect("login.jsp");

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doPost(request,response);

}

publicvoidinit()throwsServletException{

//Putyourcodehere

}

}

3、6.编写监控登录用户列表的页面:

/admin.jsp。

显示所有在线用户列表

<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

MyJSP'admin.jsp'startingpage

--

-->

监控用户登录


 

当前用户ID列表:

<%

Listuserlist=newArrayList();

application.setAttribute("userlist",userlist);%>

刷新

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1