第三篇:Servlet入门篇

原创 2004年06月24日 07:00:00

严重警告:知道Servlet的人不要往下看<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

把别人告诉我的告诉你:

Servlet是服务器端的java程序

通过http协议被客户端调用,在客户端形成动态网页

需要什么:

一个文件:servlet.jar

什么,你问这个jar文件是么东西?用你的WinRar打开可以看看,没什么了不起,只是铺天盖地的.class。不要管太多。总之这些.class给你提供了很多方法。

怎么,你没有找到这个servlet.jar?我再也不想告诉你怎么办了,你自己看着办吧。

写一程序看看先

在你的tomcatwebapps下建立一个工程myThree吧,还记得吗,在myThree下还需要什么?!同时在你的myThree先再建立一个文件夹,给它取个名,就叫javaSource可以吧

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

myThree

WEB-INF

javaSource

classes

lib

Web.xml

 

 

 

 

 

 

 

 

 


赶快把servlet.jar放在myThree--- WEB-INF---lib里面吧

Eclipe中新建你的工程吧,也取名叫myThree好了,方便辨认,把你的源文件(.java)放在myThree--- javaSource里,把你的类文件(.class)放在myThree--- WEB-INF--- classes

里面吧。(如果不知道怎么弄,回去看火星和冥王星吧)

Eclipe中,对着myThree右键----Properties—左边选“Java Build Path”右边选“Libraries-----Add External JARs”进入,把刚刚放在lib下的servlet.jar选中吧。。。

好了,写一个类先,就取名字叫:Test

程序代码如下:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class Test extends HttpServlet

{

   public void doGet( HttpServletRequest rq,

                     HttpServletResponse rp )

                     throws IOException,ServletException

    {

       rp.setContentType("text/html;charset=gb2312");

        PrintWriter out=rp.getWriter();

       out.println("<html>欢迎你使用Servlet</html>");

      

    }

}

把你的这个web.xml的内容改为

<?xml version="1.0" encoding="ISO-8859-1"?>

 

<!DOCTYPE web-app

    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

    "http://java.sun.com/dtd/web-app_2_3.dtd">

 

<web-app>

    <servlet>

        <servlet-name>123</servlet-name>

        <servlet-class>Test</servlet-class>

   </servlet>

 

    <servlet-mapping>

        <servlet-name>123</servlet-name>

        <url-pattern>/abc</url-pattern>

    </servlet-mapping>

</web-app>

 

请再次启动你的tomcat

在你的ie地址栏输入:

http://localhost:8080/myThree/abc

看到效果了吗?

怎么,觉得太没意思了,来个稍微复杂点的如何?

把刚刚上面的程序该为:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class Test extends HttpServlet

{

   public void doGet( HttpServletRequest rq,

                     HttpServletResponse rp )

                     throws IOException,ServletException

    {

       rp.setContentType("text/html;charset=gb2312");

       PrintWriter out=rp.getWriter();

       out.println("<html>");

       out.println("<form method=post action=abc>");

       out.println("<input type=text   name=t1><br>");

       out.println("<input type=submit value=确定><br>");

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

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

    }

   

    public void doPost( HttpServletRequest rq,

                      HttpServletResponse rp )

                      throws IOException,ServletException

     {

        rp.setContentType("text/html;charset=gb2312");

        PrintWriter out=rp.getWriter();

        String t = rq.getParameter("t1");

        out.println("<html>欢迎你:");

        out.println(t);

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

     }

}

请再次启动你的tomcat

在你的ie地址栏输入:

http://localhost:8080/myThree/abc

在框框中输入你的名字,再按“确定”看看。。

只想说明2点:

out.println("<input type=text   name=t1><br>");

String t = rq.getParameter("t1");

下面的rq.getParameter("t1")会在上面找到一个namet1的东东,并且获得它的内容赋值给t

再看web.xml

   <servlet>

        <servlet-name>123</servlet-name>

        <servlet-class>Test</servlet-class>

   </servlet>

    <servlet-mapping>

        <servlet-name>123</servlet-name>

        <url-pattern>/abc</url-pattern>

    </servlet-mapping>

这里<servlet-class>Test</servlet-class>中的Test跟你工程中的类的名字一样

这里<url-pattern>/abc</url-pattern>中的abc跟你在ie地址栏上应用myThree后面输入的相同

这里<servlet-name>123</servlet-name>,上面、下面的一样。

这些,你都发现了吗?

现在你知道怎么把/abc 改为/cba、把123该为321了吗?

再给一个例子:

建立工程giveYou(不要忘了WEB-INF和她的孩子们)

giveYou下写三个文件

1login.jsp内容如下

<%@ page contentType="text/html; charset=gb2312"%>

<html>

       <form method="post" action="http://localhost:8080/giveYou/Test2">

       <center>

              <table width=32%  border=0>

              <tr>

                    <td align=right width=12% >username:</td>

                    <td>

                           <input type=text name=username size=20  >

                    </td>

             </tr>

             <tr> 

                    <td align=right width=12%>password:</td>

                    <td>

                           <input type=password name=password size=20 >

                    </td>

             </tr>

             <tr>  

                    <td width=12%>

                           <input type=submit name=submit value=submit>

                    </td>

                    <td>

                           <input type=reset name=reset value=reset >

                    <td>

             </tr>

             </table>

        </center>

        </form>

</HTML>

2success.jsp内容如下

<%@ page contentType="text/html; charset=gb2312"%>

<html>

       <head>

              <title>error</title>

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

       </head>

       <body>

              <h1><font color=green>Success!!</font></h1>

              <form mothod="post" action="login.jsp">

                     <input type="submit" name="submit" value="返回">

              </form>

       </body>

</html>

3error.jsp内容如下

<%@ page contentType="text/html; charset=gb2312"%>

<html>

       <head>

              <title>error</title>

       </head>

       <body>

              <h1><font color=red>Error!!你没有输入用户名、密码</font></h1>

              <form mothod="post" action="login.jsp">

                     <input type="submit" name="submit" value="返回">

              </form>

       </body>

</html>

Eclipe中新建你的工程吧,也取名叫giveYou(把你的源文件(.java)放在myThree--- javaSource里,把你的类文件(.class)放在myThree--- WEB-INF--- classes里面),不要忘了导入servlet.jar

写一个类Test,内容如下:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class Test extends HttpServlet

{

private String userId,passWord;  

   public void doPost( HttpServletRequest rq,

                     HttpServletResponse rp )

                     throws IOException,ServletException

    {

       rp.setContentType("text/html;charset=gb2312");

       PrintWriter out=rp.getWriter();

        userId=rq.getParameter("username");

       passWord=rq.getParameter("password");

       if((userId!=null)&&(passWord!=null))

       {

              rp.sendRedirect("/giveYou/success.jsp");

       }

       else

       {

              rp.sendRedirect("/giveYou/error.jsp");

        }

    }

}

由于web.xmlmyThree中的一样,在此就不说了

请再次启动你的tomcat

在你的ie地址栏输入:

http://localhost:8080/giveYou /login.jsp

 

本章后语:到了这里的时候,你一定已经很不耐烦了,认为我的“毫无废话”成了“废话连篇”,但是,我的哥哥姐姐,到了上面的这个例子,你认为你是不可以把它写的稍微复杂,稍微漂亮一些了呢,不要让页面老是那么苍白、不要让文字总是那么的黑不咙咚、做几十个类,互相调用看看、在doPost()中写个条件语句,根据获得的不同值跳转到不同的页面试试,相信你的程序再不会那么孤独了。

一点早该跟你说的话:你应该注意到了,每个应用都放在tomcatwebapps下面,每个应用都必须有WEB-INF结构(你不要跟我说你没注意到这一点,那我将为你看了这么多的废话感到悲哀)。为什么呢?因为服务器tomcat启动的时候,她靠什么来判断哪些应用该她“管辖”呢。她就在自己的webapps文件夹下面,找到所有的文件夹,并且看这些文件夹是不都有WEB-INF文件夹,如果有,她就会去看看WEB-INF下面有没有web.xml这个文件。如果webapps下的任何一个文件夹没有WEB-INF结构,她会认为这个东西与她无关。tomcat自动的读取web.xml中的内容,当你运行你的程序需要相关的内容的时候,她就看看你写的web.xml是否提供了相关的配置。---但愿我说清楚了!!! :)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Python之路【第三篇】:Python基础(二)

内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件操作文件 一、打开文件 ? 1 文件句柄 = file('文件路径', '...
  • xiangxizhishi
  • xiangxizhishi
  • 2017年12月19日 11:14
  • 32

javascript 第三篇(入门篇)

javascript 第三篇(入门篇)                   目录 目录 2 第1章 函数基础 4 1.1 函数概述 4 1.1.1 什么是函数 4...
  • angularWQ
  • angularWQ
  • 2017年04月02日 10:47
  • 166

蓝牙mesh — 解密蓝牙mesh系列文章汇总

写在前面:转自“蓝牙技术联盟”微信公众号,只为方便学习~相信小码哥和凯哥会理解的~ (转载文章,如有不妥,通知后我会立即删除) 解密蓝牙mesh系列 往期回顾:   1、解密蓝牙me...
  • zhanghuaishu0
  • zhanghuaishu0
  • 2017年12月11日 15:09
  • 161

servlet入门篇

1.Servlet的作用?     当使用交互式 Web 站点时,您所看到的所有内容都是在浏览器中显示的。在这些场景背后,有一个 Web服务器接收会话中来自于您的请求,可能要切换到其他代码(可能位于...
  • gaibian0823
  • gaibian0823
  • 2015年12月10日 17:45
  • 383

Servlet入门篇

今天刚接触Servlet,并作了如下总结,如有哪里错误请指教!(PS:后面的知识还有持续更新,如有需要的朋友,请关注······)1. 如何创建一个你的第一个servlet?**在tomcat中新建一...
  • Cecilia620
  • Cecilia620
  • 2017年05月02日 21:51
  • 160

servlet详解(第三篇)

请求转发和请求包含无论是请求转发还是请求包含,都表示由多个Servlet共同来处理一个请求。例如Servlet1来处理请求,然后Servlet1又转发给Servlet2来继续处理这个请求。6.1请求转...
  • qq_28483283
  • qq_28483283
  • 2016年04月22日 23:19
  • 565

android 学习之路一入门篇一

1 android ADT和 android SDK,AVD的关系: ADT(Android Development Tools) :android 开发工具,它是eclipse的一个插件,用来开发...
  • xp215774576
  • xp215774576
  • 2015年04月26日 17:30
  • 321

第三篇《四维虫子》

他:“你好。”      我:“你好。”      他有着同龄人少有的镇定和口才,而且多少有点儿漫不经心的神态。但是眼睛里透露出的信息是一种渴望,对交流的渴望。      如果把我接触的患...
  • hoho568
  • hoho568
  • 2014年02月07日 16:13
  • 607

Servlet基础(入门篇)

Servlet基础(入门篇) Servlet简介:Servlet是sun公司提供的一门用于开发动态web资源的技术,sun公司在API中提供了一个Servlet接口,用户若想完成一个动态web资源,...
  • xy849288321
  • xy849288321
  • 2011年10月18日 19:14
  • 1019

读书笔记-《如何阅读一本书》

此书适合于读任何书之前阅读,明白如何阅读一本书。 读书需要有主动性有思考性地阅读,需要略读判断此书是否适合现在的自己。 精读后做读书笔记,了解书中观点,判断是否对自己有利,书中说得是否有道理。 zu...
  • wangpeifeng669
  • wangpeifeng669
  • 2014年05月04日 06:13
  • 1119
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三篇:Servlet入门篇
举报原因:
原因补充:

(最多只允许输入30个字)