随笔-0  评论-0  文章-16  trackbacks-0
  2012年7月11日

1 SQL脚本

CREATE TABLE `tb_goods1` (

 `id` int(11) NOT NULL AUTO_INCREMENT,

 `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,

 `price` float DEFAULT NULL,

 `unit` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,

 `manufacturer` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,

 PRIMARY KEY (`id`)

)

2 创建网站

3 新建Servlet 名称是GoodsServlet 包名是com.jht.servlet

4 引用Tomcat, 附加jar包文件 <Build Path菜单>

mysql-connector-java-3.0.16-ga-bin :数据库操作类

jstl-api-1.2 JSP标准标签库

jstl-impl-1.2 JSP标准标签库

5 创建实体类 GoodsForm 包名是  com.jht.model

代码如下:

 

public class GoodsForm {

       private int id = 0; // 编号属性

       private String name = ""; // 商品名称属性

       private float price = 0.0f; // 单价属性

       private String unit = ""; // 单位属性

       private String manufacturer = ""; // 厂商属性

       public void setId(int id) {

              this.id = id;

       }

       public int getId() {

              return id;

       }

       public void setName(String name) {

              this.name = name;

       }

       public String getName() {

              return name;

       }

       public void setPrice(float price) {

              this.price = price;

       }

       public float getPrice() {

              return price;

       }

       public void setUnit(String unit) {

              this.unit = unit;

       }

       public String getUnit() {

              return unit;

       }

       public void setManufacturer(String manufacturer) {

              this.manufacturer = manufacturer;

       }

       public String getManufacturer() {

              return manufacturer;

       }

}

6 编写数据库连接与操作类

package com.jht.tools;

import java.io.InputStream;

import java.sql.*;

import java.util.Properties;

public class ConnDB {

    public Connection conn=null;

    public Statement stmt=null;

    public ResultSet rs=null;

    private static String propFileName="connDB.properties";

    private static Properties prop=new Properties();

    private static String dbClassName="com.mysql.jdbc.Driver";

    private static String dbUrl="jdbc:mysql://127.0.0.1:3306/db_Database07?user=root&password=111&characterEncoding=UTF-8";

    public ConnDB() { //定义构造方法

              try {                     //捕捉异常

                     //Properties文件读取到InputStream对象中

                     InputStream in = getClass().getResourceAsStream(propFileName);

                     prop.load(in); // 通过输入流对象加载Properties文件

                     dbClassName = prop.getProperty("DB_CLASS_NAME"); // 获取数据库驱动

                     dbUrl = prop.getProperty("DB_URL", dbUrl);             //获取URL

              } catch (Exception e) {

                     e.printStackTrace(); // 输出异常信息

              }

       }

    public static Connection getConnection() {

              Connection conn = null;

              try {                                                        //连接数据库时可能发生异常因此需要捕捉该异常

                     Class.forName(dbClassName).newInstance();                   //装载数据库驱动

                     //建立与数据库URL中定义的数据库的连接

                     conn = DriverManager.getConnection(dbUrl);

              } catch (Exception ee) {

                     ee.printStackTrace();                                                             //输出异常信息

              }

              if (conn == null) {

                     System.err

                                   .println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"

                                                 + dbClassName

                                                 + "\r\n链接位置:"

                                                 + dbUrl);        //在控制台上输出提示信息

              }

              return conn;                                                                   //返回数据库连接对象

       }

   

    /*

        * 功能:执行查询语句

        */

       public ResultSet executeQuery(String sql) {

              try { // 捕捉异常

                     conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn

                     stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

                                   ResultSet.CONCUR_READ_ONLY);

                     rs = stmt.executeQuery(sql);               //执行SQL语句,并返回一个ResultSet对象rs

              } catch (SQLException ex) {

                     System.err.println(ex.getMessage()); // 输出异常信息

              }

              return rs; // 返回结果集对象

       }

 

       /*

        * 功能:关闭数据库的连接

        */

       public void close() {

              try { // 捕捉异常

                     if (rs != null) { // ResultSet对象的实例rs不为空时

                            rs.close(); // 关闭ResultSet对象

                     }

                     if (stmt != null) { // Statement对象的实例stmt不为空时

                            stmt.close(); // 关闭Statement对象

                     }

                     if (conn != null) { // Connection对象的实例conn不为空时

                            conn.close(); // 关闭Connection对象

                     }

              } catch (Exception e) {

                     e.printStackTrace(System.err); // 输出异常信息

              }

       }

}

7 配置文件connDB.properties 内容如下:

DB_CLASS_NAME=com.mysql.jdbc.Driver

DB_URL=jdbc:mysql://127.0.0.1:3306/c2cd?user=root&password=root&characterEncoding=UTF-8

8 web.xml 文件配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 <servlet>

    <servlet-name>GoodsServlet</servlet-name>

    <servlet-class>com.jht.servlet.GoodsServlet</servlet-class>

 </servlet>

 

 <servlet-mapping>

    <servlet-name>GoodsServlet</servlet-name>

    <url-pattern>/GoodsServlet</url-pattern>

 </servlet-mapping>

 <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

 </welcome-file-list>

</web-app>

9 index.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<c:redirect url="GoodsServlet">

    <c:param name="action" value="query" />

</c:redirect>

</body>

</html>

10 GoodsList.jsp 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

 <table width="450" height="47" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#333333">

    <tr>

      <td height="30" colspan="5" bgcolor="#EFEFEF">·商品列表</td>

    </tr>

    <tr>

      <td width="36" height="27" align="center" bgcolor="#FFFFFF">编号</td>

      <td width="137" align="center" bgcolor="#FFFFFF">商品名称</td>

      <td width="85" align="center" bgcolor="#FFFFFF">单价</td>

      <td width="38" align="center" bgcolor="#FFFFFF">单位</td>

      <td width="148" align="center" bgcolor="#FFFFFF">厂商</td>

    </tr>

    <c:forEach var="goods" items="${requestScope.goodsList}">  

    <tr>

      <td height="27" bgcolor="#FFFFFF">&nbsp;

      <c:out value="${goods.id}"/></td>

      <td bgcolor="#FFFFFF">&nbsp;

      <c:out value="${goods.name}"/></td>

      <td bgcolor="#FFFFFF">&nbsp;

      <c:out value="${goods.price}"/>(元)</td>

      <td bgcolor="#FFFFFF">&nbsp;

      <c:out value="${goods.unit}"/></td>

      <td bgcolor="#FFFFFF">&nbsp;

      <c:out value="${goods.manufacturer}"/></td>

    </tr>

    </c:forEach> 

 </table>

</body>

</html>

11 显示数据库中的商品信息

 

posted @ 2012-07-11 14:35 jhtchina 阅读(395) | 评论 (0)编辑 收藏
  2012年7月9日
EL:Expression Language的简称
作用:
简化EL表达式语言,可以简化在JSP开发中对对象的引用,增强程序的可读性及可维护性。

t1.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>应用EL表达式访问JavaBean的属性</title>
 <link rel="stylesheet" type="text/css" href="CSS/style.css">

  </head>
 
  <body><form name="form1" method="post" action="t2.jsp">
  <table width="403" height="230" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#666666">
    <tr>
      <td height="30" colspan="2" bgcolor="#EFEFEF">·用户注册</td>
    </tr>
    <tr>
      <td width="88" align="center" bgcolor="#FFFFFF">用 户 名:</td>
      <td width="359" bgcolor="#FFFFFF"><input name="username" type="text" id="username"></td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">密&nbsp;&nbsp;&nbsp;&nbsp;码:</td>
      <td bgcolor="#FFFFFF"><input name="pwd" type="password" id="pwd"></td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">确认密码:</td>
      <td bgcolor="#FFFFFF"><input name="repwd" type="password" id="repwd"></td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">性&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
      <td bgcolor="#FFFFFF"><input name="sex" type="radio" class="noborder" value="男">
        男
        <input name="sex" type="radio" class="noborder" value="女">
        女</td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">爱&nbsp;&nbsp;&nbsp;&nbsp;好:</td>
      <td bgcolor="#FFFFFF"><input name="affect" type="checkbox" class="noborder" id="affect" value="体育">
体育
<input name="affect" type="checkbox" class="noborder" id="affect" value="美术">
美术
<input name="affect" type="checkbox" class="noborder" id="affect" value="音乐">
音乐
 
<input name="affect" type="checkbox" class="noborder" id="affect" value="旅游">
旅游 </td>
    </tr>
    <tr>
      <td colspan="2" align="center" bgcolor="#FFFFFF">
        <input name="Submit" type="submit" class="btn_grey" value="提交">
&nbsp;
<input name="Submit2" type="reset" class="btn_grey" value="重置"></td>
    </tr>
  </table>
 </form>
  </body>
</html>
编写保存信息的javaBean
package com.jht.wgh;

public class UserForm {
 private String username="";  //用户名属性
 private String pwd="";   //密码属性
 private String sex="";   //性别属性
 private String[] affect=null; //爱好属性
 public void setUsername(String username) {
  this.username = username;
 }
 public String getUsername() {
  return username;
 }
 public void setPwd(String pwd) {
  this.pwd = pwd;
 }
 public String getPwd() {
  return pwd;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public String getSex() {
  return sex;
 }
 public void setAffect(String[] affect) {
  this.affect = affect;
 }
 public String[] getAffect() {

  return affect;
 }
}
编写t2.jsp,在该页中,使用request内置对象的setCharacterEncoding()方法设置请求的编码方式为UTF-8,然后使用<jsp:userBean>动作指令在页面中创建一个javaBean实例,再使用<jsp:setProperty>动作指令设置javaBean实例的各种属性值,最后使用EL表达式将JavaBean的各种属性显示到页面中。
t2.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%request.setCharacterEncoding("UTF-8");%>
<jsp:useBean id="userForm" class="com.jht.wgh.UserForm" scope="page"/>
<jsp:setProperty name="userForm" property="*"/>
<jsp:setProperty name="userForm" property="affect" value='<%=request.getParameterValues("affect")%>'/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <title>应用EL表达式访问JavaBean的属性</title>
 <link rel="stylesheet" type="text/css" href="CSS/style.css">

  </head>
 
  <body>
    <table width="403" height="218" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#666666">
    <tr>
      <td height="30" colspan="2" bgcolor="#EFEFEF">·显示用户填写的注册信息</td>
    </tr>
    <tr>
      <td width="88" align="center" bgcolor="#FFFFFF">用 户 名:</td>
      <td width="359" bgcolor="#FFFFFF">&nbsp;${userForm.username}</td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">密&nbsp;&nbsp;&nbsp;&nbsp;码:</td>
      <td bgcolor="#FFFFFF">&nbsp;${userForm.pwd}</td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">性&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
      <td bgcolor="#FFFFFF">&nbsp;${userForm.sex}</td>
    </tr>
    <tr>
      <td align="center" bgcolor="#FFFFFF">爱&nbsp;&nbsp;&nbsp;&nbsp;好:</td>
      <td bgcolor="#FFFFFF">&nbsp;${userForm.affect[0]} ${userForm.affect[1]} ${userForm.affect[2]} ${userForm.affect[3]}</td>
    </tr>
    <tr>
      <td colspan="2" align="center" bgcolor="#FFFFFF">
        <input name="Button" type="button" class="btn_grey" value="返回" onClick="window.location.href='t1.jsp'">
&nbsp;</td>
    </tr>
  </table>
  </body>
</html>


posted @ 2012-07-09 16:45 jhtchina 阅读(802) | 评论 (0)编辑 收藏
1 创建一个Dynamic Web Project.
2 创建一个新的servlet(包名是com.jht.controller,类名是:GoodsServlet)
3 修改Build Path(增加Tomcat引用和mysql-connector-java-5.1.6-bin引用)
4 增加web.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>GoodsServlet</servlet-name>
    <servlet-class>com.jht.controller.GoodsServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>GoodsServlet</servlet-name>
    <url-pattern>/GoodsServlet</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

5 index.jsp文件内容如下:
<html>
 <head>
  <title>录入商品信息</title>
  <style type="text/css">
   *{font-size: 12px;}
  </style>
  <script type="text/javascript">
   function save(form){
    if(form.name.value == ""){
     alert("请输入商品名称!");
     return false;
    }
    if(form.price.value == ""){
     alert("请输入商品价格!");
     return false;
    }
    if(form.description.value == ""){
     alert("请输入商品描述!");
     return false;
    }
   }
  </script>
 </head>
 <body>
  <form action="GoodsServlet" method="post" onsubmit="return save(this);">
   <table border="1" align="center" width="300">
    <tr>
     <td align="center" colspan="2">
      <br><h1>录入商品信息</h1>
     </td>
    </tr>
    <tr>
     <td align="right">商品名称:</td>
     <td><input type="text" name="name"></td>
    </tr>
    <tr>
     <td align="right">价 格:</td>
     <td><input type="text" name="price"></td>
    </tr>
    <tr>
     <td align="right">商品描述:</td>
     <td><textarea name="description" cols="30" rows="3"></textarea></td>
    </tr>
    <tr>
     <td align="center" colspan="2">
      <input type="submit" value="提 交">
      <input type="reset" value="重 置">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html>

6 创建com.jht.model包名
7 在此包下面创建Goods 类和GoodsDao类
Goods内容如下:

package com.jht.model;

public class Goods {
 private String name; // 商品名称
 private double price; // 单价
 private String description; // 描述信息
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public double getPrice() {
  return price;
 }
 public void setPrice(double price) {
  this.price = price;
 }
 public String getDescription() {
  return description;
 }
 public void setDescription(String description) {
  this.description = description;
 }
}


GoodsDao内如如下:


package com.jht.model;

/*
  * 商品数据库操作类
 * @author
  */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class GoodsDao {
 /**
  * 保存商品信息
  * @param goods
  */
 public void saveGoods(Goods goods){
  try {
   // 加载驱动
   Class.forName("com.mysql.jdbc.Driver");
   // 数据库连接url
   String url = "jdbc:mysql://localhost:3306/c2cd?characterEncoding=UTF-8";
   // 获取数据库连接
   Connection conn = DriverManager.getConnection(url, "root", "root");
   // sql语句
   String sql = "insert into tb_goods(name,price,description) values(?,?,?)";
   // 创建PreparedStatement对象
   PreparedStatement ps = conn.prepareStatement(sql);
   // 对sql语句中参数赋值
   ps.setString(1, goods.getName());
   ps.setDouble(2, goods.getPrice());
   ps.setString(3, goods.getDescription());
   ps.executeUpdate();  // 更新操作
   ps.close();  // 关闭ps
   conn.close(); // 关闭conn
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}


8 修改GoodsServlet文件

(注意:在一个Servlet 对象中,最常用的方法是doGet()和doPost()方法,这2个方法分别用于处理HTTP的Get和Post请求。例如,<form>表单对象所声明的method属性为"post",提交到Servlet对象处理时,Servlet将调用doPost()方法进行处理。)
package com.jht.controller;

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

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jht.model.Goods;
import com.jht.model.GoodsDao;

/**
 * Servlet implementation class GoodsServlet
 */
@WebServlet("/GoodsServlet")
public class GoodsServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

    /**
     * Default constructor.
     */
    public GoodsServlet() {
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  // 设置response编码
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    // 设置request编码
    request.setCharacterEncoding("UTF-8");
    // 获取输出流
    PrintWriter out = response.getWriter();
    // 获取商品信息
    String name = request.getParameter("name");
    String price = request.getParameter("price");
    String description = request.getParameter("description");
    Goods goods = new Goods(); // 实例化商品对象
    // 对商品对象属性赋值
    goods.setName(name);
    goods.setPrice(Double.valueOf(price));
    goods.setDescription(description);
    // 实例化GoodsDao
    GoodsDao goodsDao = new GoodsDao();
    goodsDao.saveGoods(goods); // 保存商品信息
    out.print("保存商品信息成功!");
    out.flush();
    out.close();
 }

}
9 数据表脚本如下:

/*
Navicat MySQL Data Transfer
Source Host     : localhost:3306
Source Database : c2cd
Target Host     : localhost:3306
Target Database : c2cd
Date: 2012-07-09 14:41:20
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tb_goods
-- ----------------------------
DROP TABLE IF EXISTS `tb_goods`;
CREATE TABLE `tb_goods` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
  `price` double DEFAULT NULL,
  `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;




posted @ 2012-07-09 14:31 jhtchina 阅读(739) | 评论 (0)编辑 收藏
  2012年7月6日
counter.java

package com.jht;

public class Counter {
    private int count=0;
    public int getCount()
    {
     return ++count;
    }
}

t5.jsp

<body>
<!-- 创建一个session范围的counter对象 -->

<jsp:useBean id="counter_session" class="com.jht.Counter" scope="session"/>
<!-- 创建一个application范围的counter对象 -->
<jsp:useBean id="counter_application" class="com.jht.Counter" scope="application" />
作用域
<br>
session:
<jsp:getProperty name="counter_session" property="count" />


<br>
application:
<jsp:getProperty name="counter_application" property="count"/>

</body>


javaBean的作用域有page,request,session,application


posted @ 2012-07-06 16:18 jhtchina 阅读(266) | 评论 (0)编辑 收藏
     摘要: jdbc:mysql://localhost:3306/test1?characterEncoding=UTF-8数据库配置web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:x...  阅读全文
posted @ 2012-07-06 12:08 jhtchina 阅读(260) | 评论 (0)编辑 收藏
  2012年7月5日
servlet 过滤器是客户端与目标间的中间层组建,用于拦截客户端的请求与相应信息。
首先先看如下例子:
(1) 创建网站
(2) 创建Servlet, Servlet 名称是Servletnew ,包名是:com.jht
(3) 增加Apache Tomcat到Library
(4)WebContent/WEB-INF 增加web.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <!-- 声明字符编码过滤器 -->
 <filter>
  <filter-name>CharacterEncodingFilter</filter-name>
  <filter-class>com.jht.CharacterEncodingFilter</filter-class>
  <!-- 设置初始化参数 -->
  <init-param>
   <param-name>encoding</param-name>
   <param-value>GBK</param-value>
  </init-param>
 </filter>
 <!-- 映射字符编码过滤器 -->
 <filter-mapping>
  <filter-name>CharacterEncodingFilter</filter-name>
  <!-- 与所有请求关联 -->
  <url-pattern>/*</url-pattern>
  <!-- 设置过滤器对应的请求方式 -->
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
 </filter-mapping>
 <!-- Servlet配置 -->
 <servlet>
  <servlet-name>MyServletnew</servlet-name>
  <servlet-class>com.jht.MyServletnew</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>MyServletnew</servlet-name>
  <url-pattern>/MyServletnew</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

(5) 在WebConntent下面增加index.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
    <form action="MyServletnew" method="post">
  <p>
   请输入你的中文名字:
   <input type="text" name="name">
   <input type="submit" value="提 交">
  </p>
 </form> 
</body>
</html>
(6) 创建类文件CharacterEncodingFilter,实现过滤。

package com.jht;


import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
 * 字符编码过滤器
 * @author
 */
public class CharacterEncodingFilter implements Filter{
 // 字符编码(初始化参数)
    protected String encoding = null;
    // FilterConfig对象
    protected FilterConfig filterConfig = null;
    // 初始化方法
    public void init(FilterConfig filterConfig) throws ServletException {
        // 对filterConfig赋值
     this.filterConfig = filterConfig;
     // 对初始化参数赋值
        this.encoding = filterConfig.getInitParameter("encoding");
    }
    // 过滤器处理方法
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 判断字符编码是否有效
     if (encoding != null) {
      // 设置request字符编码
            request.setCharacterEncoding(encoding);
            // 设置response字符编码
            response.setContentType("text/html; charset="+encoding);
        }
     // 传递给下一过滤器
        chain.doFilter(request, response);
    }
    // 销毁方法
    public void destroy() {
     // 释放资源
        this.encoding = null;
        this.filterConfig = null;
    }
}

(7) MyServletnew.java 文件内容如下:

package com.jht;


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

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServletnew
 */
@WebServlet("/MyServletnew")
public class MyServletnew extends HttpServlet {
 private static final long serialVersionUID = 1L;

    /**
     * Default constructor.
     */
    public MyServletnew() {
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  PrintWriter out = response.getWriter();
  // 获取表单参数
  String name = request.getParameter("name");
  if(name != null && !name.isEmpty()){
   System.out.println(name);
   out.print("你好 " + name);
   out.print(",<br>欢迎来到我的主页。");
  }else{
   out.print("请输入你的中文名字!");
  }
  out.print("<br><a href=index.jsp>返回</a>");
  out.flush();
  out.close();
 }

}



posted @ 2012-07-05 11:57 jhtchina 阅读(103) | 评论 (0)编辑 收藏
  2012年7月4日

1 创建test1 Dynamic Web Project站点

2 创建Servlet 设置java package(com.servlet)class name(MyServlet)

设置:

选择Add Library
 

选择tomcat




3 在WebContent/WEB-INF 下面创建web.xml文件。
  Web.xml文件内容如下:
  <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
  <servlet-name>MyServlet</servlet-name>
  <servlet-class>com.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>MyServlet</servlet-name>
  <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>MyServlet</welcome-file>
</welcome-file-list>
</web-app>
4 编写MyServlet.java代码
import java.io.PrintWriter;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub  
  response.setContentType("text/html");
  response.setCharacterEncoding("GBK");
  PrintWriter out=response.getWriter();
  out.println("<HTML>");
  out.println("<HEAD><TITLE>servlet sample</TITLE></HEAD>");
  out.println("<BODY>");
  out.println("servlet 实例 ");
  out.println(this.getClass());
  out.println("</BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();  
 }
5 WebContent下面创建index.jsp
Body里面增加代码<jsp:forward page="MyServlet"></jsp:forward>
6 运行结果如下:
servlet 实例 class com.servlet.MyServlet

备注:
MyServlet.java代码修改
 response.setContentType("text/html");
  response.setCharacterEncoding("GBK");
  PrintWriter out = response.getWriter();
  out.print("<p>上下文路径:" + request.getServletPath() + "</p>");
  out.print("<p>HTTP请求类型:" + request.getMethod() + "</p>");
  out.print("<p>请求参数:" + request.getQueryString() + "</p>");
  out.print("<p>请求URI:" + request.getRequestURI() + "</p>");
  out.print("<p>请求URL:" + request.getRequestURL().toString() + "</p>");
  out.print("<p>请求Servlet路径:" + request.getServletPath() + "</p>");
  out.flush();
  out.close();
运行结果:

上下文路径:/MyServlet
HTTP请求类型:GET
请求参数:null
请求URI:/test1/MyServlet
请求URL:http://localhost:8080/test1/MyServlet
请求Servlet路径:/MyServlet
注意:Web Deployment Assembly增加Add,对mysql.jar的引用


posted @ 2012-07-04 16:32 jhtchina 阅读(116) | 评论 (0)编辑 收藏
t10.jsp
<%@ page language="java" contentType="text/html; charset=gbk" errorPage="11.jsp"
    pageEncoding="gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
<%
    int apple=Integer.parseInt("ghj");
    System.out.println("apple:"+apple);
%>
</body>
</html>
t11.jsp
<%@ page language="java" contentType="text/html; charset=gbk" isErrorPage="true"
    pageEncoding="gbk"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
</head>
<body>
    <%=exception.getMessage() %>
</body>
</html>
posted @ 2012-07-04 14:58 jhtchina 阅读(164) | 评论 (0)编辑 收藏
Application 提供了对应用程序环境属性访问的方法。

在WEB-INF目录下面新建web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <context-param>    <!-- 定义连接数据库URL -->
  <param-name>url</param-name>
  <param-value>jdbc:mysql://localhost:3306/db_database15</param-value>
 </context-param>
 <context-param>   <!-- 定义连接数据库用户名 -->
  <param-name>name</param-name>
  <param-value>root</param-value>
 </context-param>
 <context-param>   <!-- 定义连接数据库mim -->
  <param-name>password</param-name>
  <param-value>111</param-value>
 </context-param>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

t9.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Insert title here</title>
<base href="<%=basePath%>">
</head>
<body>
<%
 
   String url = application.getInitParameter("url"); //获取初始化参数,与web.xml文件中内容对应
   String name = application.getInitParameter("name");
   String password = application.getInitParameter("password");
   out.println("URL: "+url+"<br>");
   out.println("name: "+name+"<br>");
   out.println("password: "+password+"<br>");
%>
</body>
</html>



posted @ 2012-07-04 14:39 jhtchina 阅读(164) | 评论 (0)编辑 收藏
t7.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%@ page import="javax.servlet.http.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<%
  String welcome="第一次访问";
  String[] info=new String[]{"","",""};
  Cookie[] cook=request.getCookies();
  if (cook!=null)
  {
   for(int i=0;i<cook.length;i++)
   {
    if (cook[i].getName().equals("myCookInfo"))
    {
     info=cook[i].getValue().split("#");
     welcome=",欢迎回来!";
    }
   }
  }
%>
<%=info[0]+welcome %>
<form action="t8.jsp" method="post">

 

<ul>
<li>
姓名:<input name="name" type="text" value="<%=info[0] %>" >

</li>
<li>
出生日期:<input name="birthday" type="text" value="<%=info[1] %>">


</li>
<li>
邮箱地址:
<input name="mail" type="text" value="<%=info[2] %>" >
</li>
<li>
<input type="submit" value="提交">
</li>
</ul>
</form>

</body>
</html>


t8.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
 <%
  String name =new String(request.getParameter("name").getBytes("ISO8859_1"),"GBK");
     String birthday = request.getParameter("birthday");
     String mail = request.getParameter("mail");
     Cookie myCook = new Cookie("myCookInfo",name+"#"+birthday+"#"+mail);
     myCook.setMaxAge(60*60*24*365);
     response.addCookie(myCook);
    %>
    表单提交成功
    <ul style="line-height: 24px">
     <li>姓名:<%= name %>
     <li>出生日期:<%= birthday %>
     <li>电子邮箱:<%= mail %>
     <li><a href="t7.jsp">返回</a>
    </ul>
</body>
</html>
posted @ 2012-07-04 14:23 jhtchina 阅读(145) | 评论 (0)编辑 收藏
仅列出标题