Servlet 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院设计性实验报告
一、实验目的
1.掌握Servlet应用,熟悉web开发的MVC模式。
2.了解servlet工作的流程,servlet的作用。
3.掌握servlet的方法init(),destory(),doget(),dopost();
二、实验仪器或设备
1.计算机一台
2.MyEclipse软件
三、总体设计(设计原理、设计方案及流程等)
A:设计原理:
1.servlet相当于MVC模式中的C控制器。
2.作为服务器或监听程序并响应客户请求。
3.后台业务逻辑处理,对后台数据的操作、对组件模型的操作。
4.servlet有专有的方法init(),destory(),doget(),dopost();
B:设计方案及流程:
设计一个登陆页面,用户提交后,将数据提交给action,Servlet来控制处理,判断用户名、密码是否正确,根据不同的结果返回不同的信息。
再进行部署测试,运行。
四、实验步骤(包括主要步骤、代码分析等)
1.创建一个web项目命名为myproject。
2.创建登陆页面index.jsp代码如下:
注:由于css是写在页面里面的,此处省略不写,css代码见电子稿。
<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
String errormessage=(String)request.getAttribute("errormessage");
if(errormessage==null){
errormessage= "";
}
%>
<%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+pa th+"/";
%>
<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"
"/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script language="javascript">
function sub(){
// alert('欢迎使用网新商业银行');
document.mainframe.submit();
//window.location.href="mainframe.jsp";
}
</script>
</head>
<body class="main">
<form name="mainframe"action="<%=basePath%>LoginServlet"method="post">
<div class="middel">
<div class="login">
<div class="login_up">
<div class="logo_top"></div>
<div class="logo_right"></div>
</div>
<div class="login_down">
<div class="login_left">
<table cellpadding="0"cellspacing="0"height="149px"width="258px"> <tr height="30px"><td width="158"><div align="right">机构编码:
</div></td>
<td width="100"><input type="text"name="orgno"/></td></tr>
<tr><td><div align="right">用户编号:</div></td>
<td><input type="text"name="userid"/></td></tr>
<tr><td width="158"><div align="right">密码:</div></td>
<td><input type="text"name="psw"/></td></tr>
<tr height="10px">
<td colspan="2"><div
align="center"><%=errormessage %></div></td>
</tr>
<tr height="20px">
<td colspan="2"><div
align="right">*************************</div></td>
</tr>
</table>
</div>
<div class="lofin_right2">
<a href="javascript:sub()"><img src="<%=basePath%>img/submit.gif" width="71"height="24"border="0"style="margin-left:25px; margin-top:35px;"
/></a>
<br/>
<a href=""><img src="<%=basePath%>img/quit.gif"width="71"
height="24"border="0"style="margin-top:15px; margin-left:25px;"/></a> </div>
</div>
</div>
</div>
</form>
</body>
</html>
3.创建action命名为LoginAction,file-new-servlet代码如下:
package com.insigma.myproject.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.insigma.myproject.dao.LoginDao;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
String orgno=request.getParameter("orgno");
String userid=request.getParameter("userid");
String passwd=request.getParameter("passwd");
//LoginDao logindao=new LoginDao();
//boolean isok =logindao.isLogin(userid, orgno, passwd);
if (orgno.equals("1")&&userid.equals("1")&&passwd.equals("1")){
System.out.println("登陆成功了");
//response.sendRedirect("../mainframe.jsp");
request.getRequestDispatcher("/mainframe.jsp").forward(request, response);
}else {
System.out.println("登陆失败了");
//response.sendRedirect("../index.jsp");
request.setAttribute("errormessage","用户名或密码失效");
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
}
}
4.创建mainframe.jsp页面,如果用户名、密码正确则跳转到此页面。
5.修改xml文件,代码如下:
<?xml version="1.0"encoding="UTF-8"?>
<web-app version="2.5"
xmlns="/xml/ns/javaee"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.insigma.myproject.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
6.部署测试。
7.运行结果如下:
登陆页面:
登陆用户名或密码错误:
用户名和密码正确,跳转到mainframe.jsp
五、结果分析与总结
1.对MVC模式有了更深入的了解:浏览器发出请求,根据不同的url来访问不同的
Servlet,servlet响应请求,根据不同的请求调用不同的model,M调用不同的字段(访问database);
2.action,即*.java,对数据进行处理,实现对逻辑的控制。
3.servlet有统一的编程接口。
4.通过编写servlet应用程序,学到了很多东西,虽然中间出现了些错误,但是在查错
的过程中学到了很多,更深有体会的是网络资源很有用。