使用myeclipse“返回商品”步骤及代码(2015.09.15)

1、创建工程file  →  new → Web Project ch2webprj1

2、file  →  new → HTMLsearch.html  (编写search.html

   ①编写form表单

     <body>

    <form name="form1" method="post" action="goods.do">

    <input type="text" size="40" name="goods"/>

    <input type="submit" value="提交"/>

    </form>

  </body>

   ② 指定action="goods.do"

3、编写与goods.do对应的服务器端程序

   ①src 下新建servlet GetGoodsServlet

         只留下doGetdoPost

         Servlet/JSP Mapping URLaction对应(如下图)


 

  ②在doGet方法里调用doPost

       public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

            this.doPost(request, response);

}

   ③在doPost方法中设置编码格式、获取请求参数并输出(请求参数需要和表单元素name值相同)

     //设置编码格式

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=utf-8");

        //获取请求参数

String goods= request.getParameter("goods");

PrintWriter out = response.getWriter();

out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("<HTML>");

out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

out.println("  <BODY>");

//输出商品

out.println("您搜索的商品是:<br> ");

out.println(goods);

4、发布项目,将项目发布到tomcat

5、启动服务

6、测试

备注:运行流程

Search.html  →  submit()  →   action=”good.do”  →     <url-pattern>/goods.do</url-pattern>   →   <servlet-name>   →  <servlet-class> →设置编码格式UTF-8 →获取请求参数→输出网页信息

 

在前面的基础上输出商品

1、src下创建包:com.ch2.data

2、在com.ch2.data包下创建Goods类;(代码见附录三)

3、在com.ch2.data包下创建GoodsData类,模拟数据库(代码见附录四)

4、在GetGoodsServlet下编写运行程序(代码见附录五)

 

 

代码:

附录一:Search.html部分

<!DOCTYPE html>

<html>

  <head>

    <title>search.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="this is my page">

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

    

    <!--<link rel="stylesheet" type="text/csshref="./styles.css">-->

 

  </head>

  

  <body>

    <form name="form1" method="post" action="goods.do">

    <input type="text" size="40" name="goods"/>

    <input type="submit" value="提交"/>

    </form>

  </body>

</html>

 

附录二: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">

  <display-name></display-name>

  <servlet>

    <servlet-name>GetGoodsServlet</servlet-name>

    <servlet-class>com.ch2.servlet.GetGoodsServlet</servlet-class>

  </servlet>

 

  <servlet-mapping>

    <servlet-name>GetGoodsServlet</servlet-name>

    <url-pattern>/goods.do</url-pattern>

  </servlet-mapping>

  <welcome-file-list>

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

  </welcome-file-list>

</web-app>

 

附录三:Goods.java部分

package com.ch2.data;

 

public class Goods {

private int id;

private String name;

private String brand;

private double price;

private String color;

//无参

public Goods() {

super();

}

//有参

public Goods(int id, String name, String brand, int price, String color) {

super();

this.id = id;

this.name = name;

this.brand = brand;

this.price = price;

this.color = color;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand = brand;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

}

 

附录四:GoodsData.java部分

package com.ch2.data;

import java.util.*;

public class GoodsData {

//创建Goods集合

public static ArrayList<Goods> goodslist=new ArrayList<Goods>();

static{

//创建对象

Goods goods1=new Goods(1,"6p","苹果",5000,"黑色");

Goods goods2=new Goods(2,"P720","联想",1100,"红色");

Goods goods3=new Goods(3,"小米2","小米",500,"白色");

Goods goods4=new Goods(4,"华为","小米",500,"白色");

Goods goods5=new Goods(5,"荣耀","小米",500,"白色");

//添加到集合

goodslist.add(goods1);

goodslist.add(goods2);

goodslist.add(goods3);

goodslist.add(goods4);

goodslist.add(goods5);

}

}

 

附录五:GetGoodsServlet.java部分

package com.ch2.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.ch2.data.Goods;

import com.ch2.data.GoodsData;

import java.util.*;

public class GetGoodsServlet extends HttpServlet {

/**

 * The doGet method of the servlet<br>

 *

 * This method is called when a form has its tag value method equals to get.

 * 

 * @param request the request send by the client to the server

 * @param response the response send by the server to the client

 * @throws ServletException if an error occurred

 * @throws IOException if an error occurred

 */

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

            this.doPost(request, response);

/*response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("<HTML>");

out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

out.println("  <BODY>");

out.print("    This is ");

out.print(this.getClass());

out.println(", using the GET method");

out.println("  </BODY>");

out.println("</HTML>");

out.flush();

out.close();*/

}

/**

 * The doPost method of the servlet<br>

 *

 * This method is called when a form has its tag value method equals to post.

 * 

 * @param request the request send by the client to the server

 * @param response the response send by the server to the client

 * @throws ServletException if an error occurred

 * @throws IOException if an error occurred

 */

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//设置编码格式

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=utf-8");

        //获取请求参数

String goods= request.getParameter("goods");

PrintWriter out = response.getWriter();

out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("<HTML>");

out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

out.println("  <BODY>");

//输出商品

out.println("您搜索的商品是:<br> ");

out.println(goods);

//根据Goods的值查询数据,将数据库GoodsData与Goods相关的产品查询出来

//创建临时数据集合,存放查到的商品

ArrayList<Goods> templist=new ArrayList<Goods>();

//遍历GoodsData.goodslist

for(int i=0;i< GoodsData.goodslist.size();i++){

//从集合中逐个取出对象

Goods tempgoods=GoodsData.goodslist.get(i);

String name = tempgoods.getName();

if(name.indexOf(goods)!=-1){

templist.add(tempgoods);//将符合条件的对象添加到集合

}

}

//显示templist中的数据

if(templist.size()==0){

out.println("没有符合条件的商品<br>");

}else{

out.print("<table border=1 width='500' >");//以表格的形式输出

out.print("<tr>");

out.print("<td>编号</td>");      //表头固定元素

out.print("<td>名称</td>");

out.print("<td>品牌</td>");

out.print("<td>价格</td>");

out.print("<td>颜色</td>");

out.print("</tr>");

for(int i=0;i<templist.size();i++){

//取出对象

Goods findgoods = templist.get(i);

//out.println("编号"+findgoods.getId()+"名称:"+findgoods.getName()+"品牌:"+findgoods.getBrand()+"价格:"+findgoods.getPrice()+"颜色"+findgoods.getColor()+"<br>");

out.print("<tr>");

out.print("<td>"+findgoods.getId()+"</td>");        //变量

out.print("<td>"+findgoods.getName()+"</td>");

out.print("<td>"+findgoods.getBrand()+"</td>");

out.print("<td>"+findgoods.getPrice()+"</td>");

out.print("<td>"+findgoods.getColor()+"</td>");

out.print("</tr>");

}

out.print("<table>");

}

out.println("  </BODY>");

out.println("</HTML>");

out.flush();

out.close();

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值