Servlet上机实验报告
班级:软 学号:姓名:张时间:
件 1 班 ********** * 2015. 3.30
Servlet上机实验报告
一、实验目的
1.掌握Servlet来访问数据库。
2.了解servlet工作的流程,servlet的作用。
3.掌握servlet的方法init(),destory(),doGet(),doPost();
二、实验环境
Windows8.1 + Eclipse + MySQL数据库
三、实验步骤
1.创建一个动态网页的项目,名字为:Employeer,创建包com.employee,在包下新建Servlet,名为ShowEmployeeList.java,里面代码实现和MySQL数据库的连接,并将数据库的内容以表格的形式显示到页面。并将用于连接数据库的驱动jar包添加到JavaPath中。
2.配置web.Xml,匹配访问页面的URL。
3.创建数据库Employee,在里面新建表emp,并在表中添加字段ename(雇员姓名),job(职位),sal(工资),hiredate(入职时间),并插入若干条数据。添加的额数据如下:
四、源代码
1.Employeer.java
1
Servlet上机实验报告
package com.employee;
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class ShowEmployeeList extends HttpServlet { private static final long serialVersionUID = 1L; private Connection cn = null; @Override
public void init(ServletConfig config) throws ServletException { super.init();
String driver = config.getInitParameter(\"driver\"); String url = config.getInitParameter(\"url\"); String user = config.getInitParameter(\"user\");
String password = config.getInitParameter(\"password\"); try {
Class.forName(driver);
cn = DriverManager.getConnection(url, user, password); } catch (Exception e) {
System.out.println(\"Init error:\" + e.getMessage()); } }
public void destroy() { super.destroy(); try {
if (cn != null && (!cn.isClosed())) { cn.close(); cn = null; }
} catch (Exception e) {
System.out.println(\"Destroy Error:\" + e.getMessage()); } }
2
Servlet上机实验报告
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType(\"text/html\"); response.setCharacterEncoding(\"GBK\"); PrintWriter out = response.getWriter(); out.print(\"\");
out.println(\"
String sql = \"select ename,job,sal,hiredate from emp\"; PreparedStatement ps = cn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); out.print(\"
out.print(\"
姓名 | 职位 | 工资 | 加入公司日期 | \");
\" + rs.getString(\"ENAME\") + \" | \"); out.println(\"\" + rs.getString(\"JOB\") + \" | \"); out.println(\"\" + rs.getDouble(\"SAL\") + \" | \"); out.println(\"\" + rs.getString(\"HIREDATE\") + \" | \"); out.print(\"
out.println(\"
out.print(\"\"); out.print(\"\"); out.flush(); out.close(); }
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
3
Servlet上机实验报告
} }
2.web.xml
PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN\" \"http://java.sun.com/dtd/web-app_2_3.dtd\">
3.执行效果
4
Servlet上机实验报告
五、 Java反射机制
什么是反射机制?反射机制是如何实现的?
Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。
Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。Java反射机制提供如下功能:
➢ 在运行时判断任意一个对象所属的类---getClass();使用.class语
法;运用static method Class.forName();运用TYPE 语法) ➢ 在运行时构造任意一个类的对象----getFields();
➢ 在运行时判段任意一个类所具有的成员变量和方法---getMethods(); ➢ 在运行时调用任一个对象的方法---Invoke(); ➢ 在运行时创建新类对象--- newInstance();
在使用Java的反射功能时,基本首先都要获取类的Class对象,再通过Class对象获取其他的对象。
5
Servlet上机实验报告
六、实验体会
总体来说,本次的实验相对简单,都是基础的知识的简单利用。但不得不说还是很重要的,因为在Java EE的开发过程中,经常要使用servlet结合其他的框架来实现一些具体的特定的功能。同时,数据库的使用也是必须要掌握的一项基础技能。
虽然简单,但还是有许多地方需要注意。例如:
1. 在访问数据库的时候,必须要加入对应的数据库的驱动jar包。 2. Tomcat或者其他的服务器必须要正确配置。
3. 在web.xml的配置过程中,
要确保路径可以正常的访问到。同时,必须关联servlet,就要写
6
因篇幅问题不能全部显示,请点此查看更多更全内容