实验四 Servlet容器模型

实验四  Servlet容器模型
实验四  Servlet容器模型

实验四Servlet容器模型

一、实验目的

1. 掌握Web应用程序的DD文件web.xml的配置方法和作用;

2. 掌握如何通过ServletConfig获取Servlet的初始化参数;

3. 掌握ServletContext的概念,如何获得ServletContext对象;

4. 掌握如何通过RequestDispatcher转发请求。

二、实验原理

Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件web.xml来配置。对应用程序的每个Servlet,可以在web.xml中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。

ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。

三、实验内容与步骤

(一)建立一个名为bookstore的Web应用程序

在Tomcat的webapps目录下,建立一个如下所示的目录结构:

|- bookstore

|- html (包含所有的HTML文件)

|- jsp (包含所有的JSP文件)

|- images (包含所有的GIF、JPEG和BMP图象文件)

|- index.html (默认的HTML文件)

|- WEB-INF

|-classes

├ lib

├ web.xml

图4.1 bookstore应用程序的目录结构

这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。

(二)使用ServletConfig检索Servlet的初始化参数,【编写ConfigDemoServlet程序,修改web.xml 文件,在其中添加该Servlet的初始化参数:

Email:hacker@https://www.360docs.net/doc/b18687186.html,

Telephone:8899123

在浏览器的地址栏中输入下面URL访问该Servlet:

http://localhost:8080/bookstore/configDemo.do

程序运行结果如下图所示:

图4.1 ConfigDemoServlet程序的运行结果

(三)ServletContext的使用

修改上面程序,将email地址和电话使用ServletContext初始化参数传递给ConfigDemoServlet。使用ServletContext对象将email地址和电话信息写入日志文件中,并查看日志文件。

(四)下面是一个Servlet,它可以获得有关服务器的信息,验证并理解该servlet的工作过程。

package com.demo;

import java.io.*;

import java.util.*;

import javax.servlet.*;

public class ServerInfo extends GenericServlet {

public void service(ServletRequest request, ServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=GB2312");

PrintWriter out = response.getWriter();

ServletContext sc = getServletContext();

out.println("");

out.println("");

out.println("");

out.println("获取服务器端信息");

out.println("");

out.println("");

out.println("

服务器端信息:

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

");

out.println("

站点名" + request.getServerName() + "
端口号" + request.getServerPort() + "
服务器类型" + sc.getServerInfo() + "
支持Servlet版本"+sc.getMajorVersion()+"."+sc.getMinorVersion()+"
服务器属性");

// 获得服务器属性集合

Enumeration attributes = sc.getAttributeNames();

while (attributes.hasMoreElements()) {

String name = (String)attributes.nextElement();

out.println(name);

}

2

out.println("

");

out.println("");

out.println("");

}

}

(五)简单的综合应用

【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。

【步骤2】定义一个名为com.demo.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。

【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student 对象并将其作为属性存储在ServletContext对象中,然后获得通过ServletContext的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。

【步骤4】在SecondServlet中取出ServletContext上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。

图4.2 input.html页面显示结果图4.3 SecondServlet显示结果

四、思考题

1. 如何通过ServletConfig获得Servlet参数?

2. 如何获得ServletContext对象,如何通过该对象获得上下文参数?

3. 如何使用ServletContext共享数据?

Servlets+Jsp+实验4:Servlet容器模型

4 实验四 Servlet容器模型 一.实验目的 1. 掌握Web应用程序的DD文件web.xml的配置方法和作用; 2. 掌握如何通过ServletConfig获取Servlet的初始化参数; 3. 掌握ServletContext的概念,如何获得ServletContext对象; 4. 掌握如何通过RequestDispatcher转发请求。 二.实验内容 1. 建立一个名为bookstore的Web应用程序 在Tomcat的webapps目录下,建立一个如下所示的目录结构: |- bookstore |- html (包含所有的HTML文件) |- jsp (包含所有的JSP文件) |- images (包含所有的GIF、JPEG和BMP图象文件) |- index.html (默认的HTML文件) |- WEB-INF |-classes ├ lib ├ web.xml 图4.1 bookstore应用程序的目录结构 这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。 2. 使用ServletConfig检索Servlet的初始化参数 【步骤1】编写ConfigDemoServlet程序,内容如下: package com.demo; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class ConfigDemoServlet extends HttpServlet{ String servletName=null; ServletConfig config=null; String email=null; String telephone=null; public void init() { config = getServletConfig(); servletName = config.getServletName(); email = config.getInitParameter("email"); telephone = config.getInitParameter("telephone"); } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{

软件开发实验报告doc

软件开发实验报告 篇一:软件开发实验报告 本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:CASE工具PowerDesigner的使用 实验地点:专业班级: 指导教师: XX年10月22日 本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:搭建Visual Studio开发环境,设计实验地点:致远楼B303指导教师:崔秀娟XX年9月28日 篇二:软件开发平台实验报告 课程设计报告 课程名称: 软件开发平台与工具任课教师: 姓名: 学号: 1. 引言 1.1. 课程设计项目 1.2. 背景简介从编程之初,便免不了和方法,类,接口之类的东西打交道。久而久之,自然会对此进行总结,

由此而产生了开发平台。而今中国的程序员之中,有很大一部分都是编一些企业MIS、政府MIS之类的程序。其主要工作就是对数据进行一下增删改查的操作,对MIS系统做一些基础的管理而已。软件开发平台有两种平台模式:一种是传统的C/S架构模式,一种是现在流行的B/S架构模式。B/S 架构模式是随着互联网的流行,自然又要求以互联网为基础,把这些都网络化,以实现网络资源共享,而不是传统的单机模式。这便激发了软件开发者的创造力,形成了软件开发平台的B/S架构模式(web开发平台)。对于web开发平台,我的个人理解是: 1.以web 2.0为基础,基于互联网的B/S架构的软件。它本身也是一个软件,只不过不是最终的软件产品,而是用于二次开发的软件。 2.用于实现各类业务系统,如CRM、MIS、ERP、HIS、OA 等等的开发。web开发平台本身就是一个二次开发平台,他不同于诸如eclipse等这样的开发工具,需要写大量的代码来完成各个业务模块,二次开发平台只需要设计好自己的数据结构,进行一些简单的配置、拖拉等操作就可以完成业务系统的开发。 3.能够快速的实现各种报表包括复杂的图表报表的设计制作,传统的编码式开发需要自己去编写想要的各种报表,而运用开发平台就简单多了,可以很轻松的配置出各种报表。

tomcat工作原理深入详解——How Tomcat Works 中文版

How Tomcat Works中文版 介绍 概要 欢迎阅读《How Tomcat Works》这本书。这本书解剖了Tomcat4.1.12和5.0.18版本,解释了它的servlet容器的内部运行机制,那是一个免费的,开源的,最受欢迎的servlet容器,代号为Catalina。Tomcat是一个复杂的系统,由许多不同的组件构成。那些想要学习Tomcat运行机制的朋友大部分知道从何入手。这本书会提供一个蓝图,然后为每一个组件构造一个简化版本,使得可以更加容易的理解这些组件。在这之后才会对真实的组件进行解释。 你应该从这份简介开始阅读,因为它解释了这本书的结构,同时给你勾画了这个项目构造的简洁轮廓。“准备前提软件”这一节会给你一些指示,例如你需要下载什么样的软件,如何为你的代码创建目录结构等等。 本书为谁而作 这本书是为任何一个使用Java技术进行工作的人而准备的。 ?假如你是一个servlet/jsp程序员或者一个Tomcat用户,而且对一个servlet容器是如何工作这个问题你感兴趣的话,这本书就是为你准备 的。 ?假如你想加入Tomcat的开发团队的话,这本书就是为你准备的,因为你首先需要学习那些已存在的代码是如何工作的。 ?假如你从未涉及web开发,但你对一般意义上的软件开发感兴趣的话,你可以在这本书学到一个像Tomcat一样的大型项目是如何进行设计和开发 的。 ?假如你想配置和自定义Tomcat,你也应该读读这本书。

为了理解书中的讨论,你需要了解Java面向对象编程技术以及servlet编程。假如你对这些不熟悉的话,这里有很多书籍可以参考,包括Budi的《Java for the Web with Servlets, JSP, and EJB》。为了让这些材料更容易理解,每一章开始都会有便于理解所讨论主题的必要的背景资料介绍。 Servlet容器是如何工作的 servlet容器是一个复杂的系统。不过,一个servlet容器要为一个servlet 的请求提供服务,基本上有三件事要做: ?创建一个request对象并填充那些有可能被所引用的servlet使用的信息,如参数、头部、cookies、查询字符串、URI等等。一个 request对 象是javax.servlet.ServletRequest或 javax.servlet.http.ServletRequest 接口的一个实例。 ?创建一个response对象,所引用的servlet使用它来给客户端发送响应。 一个response对象 javax.servlet.ServletResponse或 javax.servlet.http.ServletResponse接口的一个实例。 ?调用servlet的service方法,并传入request和response对象。在这里servlet会从request对象取值,给 response写值。 当你读这些章节的时候,你将会找到关于catalina servlet容器的详细讨论。 Catalina架构图 Catalina是一个非常复杂的,并优雅的设计开发出来的软件,同时它也是模块化的。基于“Servlet容器是如何工作的”这一节中提到的任务,你可以把Catalina看成是由两个主要模块所组成的:连接器(connector)和容器(container)。在Figure I.1中的架构图,当然是简化了。在稍后的章节里边,你将会一个个的揭开所有更小的组件的神秘面纱。 现在重新回到Figure I.1,连接器是用来“连接”容器里边的请求的。它的工作是为接收到每一个HTTP请求构造一个request和response对象。然后它把流程传递给容器。容器从连接器接收到requset和response对象之后调用servlet的service方法用于响应。谨记,这个描述仅仅是冰山一角而已。这里容器做了相当多事情。例如,在它调用servlet的service方法之前,它必须加载这个servlet,验证用户(假如需要的话),更新用户会话等等。一个容器

实验四 Servlet的应用

实验四Servlet的应用 实验要求: 用Servlet来完成实验三的所有任务,即先登录,然后留言,再显示留言。采用JSP+JavaBean+Servlet开发模式。 实验步骤如下: 1.创建登录页面login.jsp <%@page language="java"import="java.util.*"pageEncoding="gb2312"%>

用户名:
口令:
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

JavaEE实验报告

JavaEE实验报告 实验名称浏览器信息提取评分 实验日期2017 年11月8日指导教师彭梦 姓名何昕曦燕专业班级计算机1591学号36 一、实验目的与要求 1、目的:从服务器端获取客户端浏览信息 2、要求:掌握利用request对象获取客户端浏览器各种信息的方法 二、实验内容与步骤 1、内容 编写一个获取客户端浏览器各种信息的JSP页面。 2、步骤 1) 在已有工程下新建一个文件browserinfo.jsp。 2) 在页面中使用request对象的getHeader(“User-Agent”)方法编程获取客户端浏览器的版本号、类型信息。 3) 在页面中分别使用request对象的getRequestURI()和 getRemoteAddr()方法编程获取客户端地址。 4) 在页面中分别使用request对象的getServerName()方法和getRemoteHost 方法编程获取服务器和客户端电脑名字。 5) 在页面中使用request对象的getServerPort()方法编程获取服务器端口号。 6) 点击运行按钮,参看运行结果是否与预想的一致。

三、实验结果 四、实验收获及体会 经过这次实验让我收获颇多,其中很多知识是在平时的学习中都是无法学习到的,并且也让我们把平时上课学到的知识用于实际当中,加强了自己的动手能力,一定程度上提高了编程能力,对javaee这一门课程也有了比较更加深厚的兴趣。同时,也掌握利用request对象获取客户端浏览器各种信息的方法,知道如何编写一个获取客户端浏览器各种信息的JSP页面。最后,由于所学知识不够全面,实验在很多方面还有待完善,在以后的学习过程中,会掌握更多知识,力求做到更好

应用Servlet实现购物车

应用Servlet实现购物车 具体实现过程 1、创建封装商品信息的值JavaBean---------GoodsSingle package com.yxq.valuebean; public class GoodsSingle { private String name; //保存商品名称 private float price; //保存商品价格 private int num; //保存商品购买数量public String getName() { return name; } public void setName(String name) { https://www.360docs.net/doc/b18687186.html, = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; }

public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } } 2、创建工具JavaBean-------- MyTools 实现字符型数据转 换为整型及乱码处理 package com.yxq.toolbean; import java.io.UnsupportedEncodingException; public class MyTools { public static int strToint(String str){ //将String型数据转换为int型数据的方法 if(str==null||str.equals("")) str="0"; int i=0; try{ i=Integer.parseInt(str); //把str 转换成

用 Servlet 进行文件上传的原理和实现

用Servlet 进行文件上传的原理和实现 Servlet 是用 Java 编写的、协议和平台都独立的服务器端组件,使用请求/响应的模式,提供了一个基于 Java 的服务器解决方案。使用 Servlet 可以方便地处理在 HTML 页面表单中提交的数据,但 Servlet 的 API 没有提供对以 mutilpart/form-data 形式编码的表单进行解码的支持,因而对日常应用中经常涉及到到文件上传等事务无能为力。 如何用 Servlet 进行文件的上传,必须编程实现。 一、基本原理 通过 HTML 上载文件的基本流程如下图所示。 浏览器端提供了供用户选择提交内容的界面(通常是一个表单),在用户提交请求后,将文件数据和其他表单信息编码并上传至服务器端,服务器端(通常是一个 cgi 程序)将上传的内容进行解码了,提取出 HTML 表单中的信息,将文件数据存入磁盘或数据库。 二、各过程详解 A)填写表单并提交

通过表单提交数据的方法有两种,一种是 GET 方法,另一种是 POST 方法,前者通常用于提交少量的数据,而在上传文件或大量数据时,应该选用 POST 方法。在 HTML 代码中,在

标签中添加以下代码可以页面上显示一个选择文件的控件。 在页面中显示如下(可能随浏览器不同而不同) 可以直接在文本框中输入文件名,也可以点击按钮后弹出供用户选择文件的对话框。 B)浏览器编码 在向服务器端提交请求时,浏览器需要将大量的数据一同提交给 Server 端,而提交前,浏览器需要按照 Server 端可以识别的方式进行编码,对于普通的表单数据,这种编码方式很简单,编码后的结果通常是 field1=value2&field2=value2&…的形式,如name=aaaa&Submit=Submit。 这种编码的具体规则可以在 rfc2231 里查到,通常使用的表单也是采用这种方式编码的,Servlet 的 API 提供了对这种编码方式解码的支持,只需要调用 ServletRequest 类中的方法就可以得到用户表单中的字段和数据。 这种编码方式( application/x-www-form-urlencoded )虽然简单,但对于传输大块的二进制数据显得力不从心,对于传输这类数据,浏览器采用了另一种编码方式,即 "multipart/form-data"的编码方式,采用这种方式,浏览器可以很容易的表单内的数据和文件一起。这种编码方式先定义好一个不可能在数据中出现的字符串作为分界符,然后用它将各个数据段分开,而对于每个数据段都对应着 HTML 页面表单中的一个 Input 区,包括一个 content-disposition 属性,说明了这个数据段的一些信息,如果这个数据段的内容是一个文件,还会有Content-Type 属性,然后就是数据本身。

J2EE HttpServletRequest详解

ServletRequest详解 一个用来向服务器提供客户端请求信息的对象. servlet container产生一个ServletRequest,然后将它作为参数传递给servlet的service方法. Servlet可以提供如下数据:参数和对应值,属性,输入流. 实现ServletRequest的接口可以提供另外的协议有关的数据(例如,HttpServletRequest可以提供HTTP数据). 方法详解: Object getAttribute(String name): 以对象的形式返回指定的属性值,如果属性值不存在,则返回null. 属性值可以通过两种方法设置: servlet container可能设置属性,以便请求的特定信息可以被访问. 例如, 使用HTTPS发送的请求, javax.servlet.request.X509Certificate能够被用来查询客户端certificate信息. 属性同样可以使用setAttribute()方法进行设置. 这可以在调用RequestDispatcher之前将信息嵌入到request中. 属性的名字,应该同样遵循报名的传统. getAttributeNames(): 返回请求所有可用属性的枚举. 如果request没有可用的属性, 那么将返回空枚举. getCharacterEncoding(): 返回本请求中字符编码的名字. 如果请求没有指定字符编码,那么将返回null. void setCharacterEncoding(String env): 重写本请求所使用的字符编码. 本方法必须在读取请求参数或使用getReader()方法读取输入之前调用, 不然没有效果. int getContentLength(): 以字节的形式返回request body的长度并且made available by the input stream. 如果长度未知,将返回-1. 对于HTTPservlet, 其值和CGI变量CONTENT_LENGTH 值相同. String getContentType(): 返回request body的MIME类型. 如果类型未知, 返回null. 对于HTTP servlet,其值和CGI 变量CONTENT_TYPE相同. ServletInputStream getInputStream(): 使用ServletInputStream返回请求体的二进制数据. 本方法或者getReader()可能被调用, 来读取请求体,但是不会同时使用. String getParameter(String name): 以字符串的形式返回请求参数的值,如果参数不存在,返回null, 请求参数是请求发送的而外信息, 对于HTTP servlet, 参数包含在查询字串(query string)或发送的表格数据中. 应当确定参数只有一个值的时候才使用本方法. 如果参数可能有多个值,硬挨使用getParameterValues(https://www.360docs.net/doc/b18687186.html,ng.String) 如果你对有多个值的参数使用本方法, 返回的值和getParameterValues方法返回数组的第一个值相同. 如果参数是在请求体中发送的(当使用HTTP POST方法的时候, 会出现这中情况), 通过getInputStream()或getReader()直接读取body,将会干扰本方法的执行. Enumeration getParameterNames(): 返回请求中所有参数名的包含字符串数据的枚举, 如果请求没有参数, 本方法返回空枚举. String[] getParameterValues(String name): 返回给定参数的所有值. 如果参数不存在,返回null. 如果参数只有一个值, 数组长度为1. Map getParameterMap(): 返回请求所有参数的映射. String getProtocol(): 以protocol/majorVersion.minorVersion的格式返回请求使用的协议. 该方法返回的值和CGI变量SERVER_PROTOCOL的值相同.

Servlet实验任务

实验二 Servlet基础 一、实验目的 1、理解Servlet的作用、生命周期及相应接口所包含的方法。 2、掌握通过继承HttpServlet类来创建Servlet的方法。 二、实验类型 设计型 三、实验内容 首先运行教材或实验指导书上的一些例子程序,然后自己编写Servlet,能够接收客户端输入的两个整数,并将这两个数相加的结果显示出来。 四、预备知识 1、示例项目1 打开实验室计算机上的NetBeans6.8或者MyEclipse,选择菜单的“文件”——>“新建项目…”——>“Web应用程序”,然后给项目取一个名字,一路默认下去(同时注意观察编译器每一步做出了什么设置),并注意在此过程中,在“配置servlet部署”这一步时,在“将信息添加到部署描述符(web.xml)”前面的方框打勾。最后一步选择“完成”。会发现在NetBeans左边的“项目”窗口中生成了所创建的项目。 右键点击项目名,选择“新建”——>“servlet…”,根据提示,一步一步创建一个servlet。Servlet 的代码为: import java.io.*; import https://www.360docs.net/doc/b18687186.html,.*; import javax.servlet.*; import javax.servlet.http.*; public class First extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("Servlet First"); out.println(""); out.println(""); out.println("

Hello World

"); out.println(""); out.println(""); out.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response);

JavaEE基础实验报告

JavaEE基础实验报告2 【实验名称】:Servlet的开发应用 【实验目的】: 1.掌握Servlet的一般开发过程。 2.掌握servlet的配置。 3.掌握servlet的运行。 【实验内容及要求】: 创建第一个web应用程序HelloWorld,包含一个servlet名为“HelloWorldServlet”,为该servlet设置二个初始化参数,参数名分别为name和student_no,参数值分别为“学生姓名”和“学号”(每个同学使用自己的姓名和学号)。运行该servlet,输出格式为学号为*********的***同学,你好! 这是一个简单的servlet程序 【程序输出结果截图】: Web.xml页面代码:

HelloWorld.servlet代码页编写: 实验输出正确。 【碰到的问题及解决方法】: 问题:第一次做时,代码按照指导书上修改的,可能有些小错误之类的,对照着指导书再次审查一遍,都改过来了。但当访问时出现了问题,可以访问Tomcat(http://localhost:8080)但继续访问下面的HelloWeb文件就出现问题。

解决方法:通过网上查询,以上程序没有问题,http Statue 500就是 服务器内部问题。由此我就开始查Tomcat 的问题,重新设置了其路径和环境变量,均没错,再重新打开时,还是如此。

于是,最终将Tomcat又重新解压,配置。终于再次运行时,出现index.jsp和HelloWorld.servlet下的正确信息,这时终于成功了。

【体会和收获】 这次实验虽然简短,但也花费了好久时间。因为在之前安装Tomcat时,是按照步骤安装的,但还是因为此处出现问题。所以查找问题源头时间比较长,频繁出错也使得自己有些小失落。但还好,自己越来越有耐心来研究这种问题,最后成功得到实验结果。 这次试验告诉我,不要忽略任何小事情,也许这种小事最后才是最初的问题所在。就像本次试验对于环境变量的配置是十分重要的,配置时尤其要注意不能漏掉和搞错步骤,否则在后续的程序编写和运行中会出现很多问题,带来不必要的时间浪费。 【程序代码】: HelloWorld/HelloWorldServlet.java主要代码: …… String name, student_no; …… public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=gbk");//可以输出汉字 response.setContentType("text/html"); PrintWriter out = response.getWriter(); String name=this.getInitParameter("name"); String student_no=this.getInitParameter("student_no"); out.println(""); out.println(""); out.println(" A Servlet"); out.println(" ");

jsp和servlet文献参考

[1]孙卫琴,李洪成.《Tomcat 与JSP Web 开发技术详解》.电子工业出版社,2003年6月:1-205 [2]BruceEckel.《JSP编程思想》. 机械工业出版社,2003年10月:1-378 [3]FLANAGAN.《JSP技术手册》. 中国电力出版社,2002年6月:1-465 [4]孙一林,彭波.《JSP数据库编程实例》. 清华大学出版社,2002年8月:30-210 [5]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319 [6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9 月:32-300。 [7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月1日:1-354 [8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月:1-246 [9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460 [10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社,2003年3月:1-268 [11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月:1-410 [12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月:34-307 [13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月:23- [1] [美]Walter Savitch. Absolute Java[M].北京:电子工业出版社,2005. [2] 计磊,李里,周伟.J2EE整合应用案例[M].北京:人民邮电出版社,2007. [3] 王虎,张俊.管理信息系统[M].武汉:武汉理工大学出版社,2004.7. [4] 启明工作室编著.MIS系统开发与应用[M].北京:人民邮电出版社,2005.1. [5] 王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,2004.6. [6] 方睿,刁仁宏,吴四九编著.网络数据库原理及应用[M].四川:四川大学出版社,2005.8. [7] 耿祥义,张跃平编著.JAVA2实用教程(第二版)[M].北京:清华大学出版社,2004.11. 1] 俞传正.基于博客的个人知识管理平台研究[D].天津:天津师范大学,2006. [2] 陈明.Blog、Wiki在协作学习中的应用研究[D].武汉:华中师范大学, 2006. [3] 郭华伟.基于内容聚合BLOG学习平台的辅助教学研究与实践[D].北京: 首都师范大学,2006.

实验Servlet容器模型

实验4 Servlet容器模型 一、实验目的 1. 掌握Web应用程序的DD文件的配置方法和作用; 2. 掌握如何通过ServletConfig获取Servlet的初始化参数; 3. 掌握ServletContext的概念,如何获得ServletContext对象; 4. 掌握如何通过RequestDispatcher转发请求。 二、实验原理 Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件来配置。对应用程序的每个Servlet,可以在中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。 ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。 三、实验内容与步骤 (一)名为bookstore的Web应用程序的目录结构 在Tomcat的webapps目录下,项目目录结构如下所示。 |- bookstore |- html (包含所有的HTML文件) |- jsp (包含所有的JSP文件) |- images (包含所有的GIF、JPEG和BMP图象文件) |- (默认的HTML文件)

|- WEB-INF |-classes ├ lib ├ 图 bookstore应用程序的目录结构 这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。 (二)使用ServletConfig检索Servlet的初始化参数 【步骤1】编写ConfigDemoServlet程序,内容如下: package .*; import .*; import .*; import class ConfigDemoServlet extends HttpServlet{ String servletName=null; ServletConfig config=null; String email=null; String telephone=null; public void init() { config = getServletConfig(); servletName = (); email = ("email"); telephone = ("telephone"); } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ ("text/html;charset=gb2312"); PrintWriter out = (); (""); ("Servlet名称:"+servletName+"
"); ("Email地址:"+email+"
");

ServletJSP配置详解(非常基础)

Servlet/JSP配置详解(非常基础) jdbc发表于2004-03-02 作者:jdbc 评价:0/0 评论数:2 点击数:12384 [收藏] 摘要: 转载:转载请保留本信息,本文来自 https://www.360docs.net/doc/b18687186.html,/resource/article/0/808.html 初学者问的诸如:《怎样配置环境变量》《怎样运行Servlet》啊?这样的问题太多了,现在我写一个初学者入门必读,以便对初学者有指导作用! 首先是下载工具: 我建议初学者用Editplus+JDK,我觉得如果用例如JB,Eclipse,JCreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步。 可以通过如下地址下载: Editplus(最新版本是v2.11): https://www.360docs.net/doc/b18687186.html,/softdown.php?id=3641&url=http://sc-http.skycn. net/down/epp211a_cn.exe JDK(最新版本是Java2sdk1_4_2): https://www.360docs.net/doc/b18687186.html,/softdown.php?id=3116&url=http://sc-http.skycn. net/down/j2sdk-1_4_2-windows-i586.exe(这是For Windows) 然后就是安装JDK,我是把它装到从c:\JDK目录下面。 然后设置CLASSPATH的问题了: 正如操作系统利用PATH来搜索可执行程序一样,Java运行环境也会遍历CLASSPATH来查找类,即便是HelloWorld这样简单的程序,JVM也会遍历CLASSPATH定义的每一个路径,直到找到相应的文件为止。 相信大家用的系统不是2k就是XP,然后就应当如下设置Path: 我的电脑->属性->高级->环境变量 然后在环境变量的Path后面追加: C:\JDK\bin;.;C:\JDK\lib 也可以这样配 置:C:\JDK\bin;.;C:\JDK\lib\dt.jar;C:\JDK\lib\tools.jar

Servlet 实验报告

软件学院设计性实验报告 专业:JAVA 年级/班级: 09计算机2班 2011—2012学年第一学期课程名称Java EE框架指导教师周运 姓名张盈盈学号8888 实验地点过街楼机房B区实验时间9月29日5-8节 项目名称编写一个Servlet应用实验类型设计性 一、实验目的 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= ""; } %>

JavaEE基础实验报告

【实验名称】: Servlet的开发应用 【实验目的】: 1.掌握Servlet的一般开发过程。 2.掌握servlet的配置。 3.掌握servlet的运行。 【实验内容及要求】: 创建第一个web应用程序HelloWorld,包含一个servlet名为“HelloWorldServlet”,为该servlet设置二个初始化参数,参数名分别为name和student_no,参数值分别为“学生姓名”和“学号”(每个同学使用自己的姓名和学号)。运行该servlet,输出格式为学号为*********的***同学,你好! 这是一个简单的servlet程序 【程序输出结果截图】: 页面代码: 代码页编写:

实验输出正确。 【碰到的问题及解决方法】: 问题:第一次做时,代码按照指导书上修改的,可能有些小错误之类的,对照着指导书再次审查一遍,都改过来了。但当访问时出现了问题,可以访问Tomcat (

,以上程序没有问题,http Statue 500就是服务器内部问题。由此我就开始查Tomcat的问题,重新设置了其路径和环境变量,均没错,再重新打开时,还是如此。

于是,最终将Tomcat又重新解压,配置。终于再次运行时,出现和下的正确信息,这时终于成功了。

【体会和收获】 这次实验虽然简短,但也花费了好久时间。因为在之前安装Tomcat时,是

按照步骤安装的,但还是因为此处出现问题。所以查找问题源头时间比较长,频繁出错也使得自己有些小失落。但还好,自己越来越有耐心来研究这种问题,最后成功得到实验结果。 这次试验告诉我,不要忽略任何小事情,也许这种小事最后才是最初的问题所在。就像本次试验对于环境变量的配置是十分重要的,配置时尤其要注意不能漏掉和搞错步骤,否则在后续的程序编写和运行中会出现很多问题,带来不必要的时间浪费。 【程序代码】: HelloWorld/主要代码: …… String name, student_no; …… public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ("text/html;charset=gbk");//可以输出汉字 ("text/html"); PrintWriter out = (); String name=("name"); String student_no=("student_no"); (""); (""); (" A Servlet"); (" "); ("学号为: "+student_no+" 的同学 "+name+" 你好"); (" "); (""); (); (); }

servlet+JSP实现用户登录功能

servlet+JSP实现用户登录功能 一、Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。 这里以一个最常用的用户登录注册程序来讲解Servlet+JSP+JavaBean开发模式,通过这个用户登录注册程序综合案例,把之前的学过的XML、Xpath、Servlet、jsp的知识点都串联起来。 二、创建MVC架构的Web项目 在MyEclipse中新创建一个webmvcframework项目,导入项目所需要的开发包(jar包),创建项目所需要的包,在java 开发中,架构的层次是以包的形式体现出来的

一个良好的JavaWeb项目架构应该具有以上的11个包,这样显得层次分明,各个层之间的职责也很清晰明了,搭建JavaWeb项目架构时,就按照上面的1~11的序号顺序创建包:domain→dao→dao.impl→service→service.impl→web.controller→web.UI→web.filter→web.listener→util→junit.test,包的层次创建好了,项目的架构也就定下来了,当然,在实际的项目开发中,也不一定是完完全全按照上面说的来创建包的层次结构,而是根据项目的实际情况,可能还需要创建其他的包,这个得根据项目的需要来定了 在src目录(类目录)下面,创建用于保存用户数据的xml文件(DB.xml) 在WEB-INF目录下创建一个pages目录,pages目录存放系统的一些受保护(不允许用户直接通过URL地址访问)的jsp 页面,用户要想访问这些受保护的jsp页面,那么只能通过me.gacl.web.UI这个包里面的Servlet 创建好的项目如下图(图-1)所示: 图-1

相关文档
最新文档