`
fanjava
  • 浏览: 231379 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

第三篇:Servlet入门篇

阅读更多

严重警告:知道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" /><group id="_x0000_s1026" style="MARGIN-TOP: 0px; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 27pt; WIDTH: 324pt; POSITION: absolute; HEIGHT: 132.6pt; TEXT-ALIGN: left" coordsize="6480,2652" coordorigin="1800,8148"><shapetype id="_x0000_t132" path="m10800,qx,3391l,18209qy10800,21600,21600,18209l21600,3391qy10800,xem,3391nfqy10800,6782,21600,3391e" o:spt="132" coordsize="21600,21600"><path o:connecttype="custom" gradientshapeok="t" o:extrusionok="f" textboxrect="0,6782,21600,18209" o:connectangles="270,270,180,90,0" o:connectlocs="10800,6782;10800,0;0,10800;10800,21600;21600,10800"></path></shapetype><shape id="_x0000_s1027" style="LEFT: 1980px; WIDTH: 900px; POSITION: absolute; TOP: 8304px; HEIGHT: 1404px" type="#_x0000_t132"><font size="2"></font></shape><shape id="_x0000_s1028" style="LEFT: 3600px; WIDTH: 1260px; POSITION: absolute; TOP: 8148px; HEIGHT: 780px" type="#_x0000_t132"><font size="2"></font></shape><shape id="_x0000_s1029" style="LEFT: 5940px; WIDTH: 900px; POSITION: absolute; TOP: 8304px; HEIGHT: 624px" type="#_x0000_t132"><font size="2"></font></shape><shape id="_x0000_s1030" style="LEFT: 5940px; WIDTH: 900px; POSITION: absolute; TOP: 9240px; HEIGHT: 624px" type="#_x0000_t132"><font size="2"></font></shape><shapetype id="_x0000_t176" path="m@0,qx0@0l0@2qy@0,21600l@1,21600qx21600@2l21600@0qy@1,xe" o:spt="176" coordsize="21600,21600" adj="2700"><stroke joinstyle="miter"></stroke><formulas><f eqn="val #0"></f><f eqn="sum width 0 #0"></f><f eqn="sum height 0 #0"></f><f eqn="prod @0 2929 10000"></f><f eqn="sum width 0 @3"></f><f eqn="sum height 0 @3"></f><f eqn="val width"></f><f eqn="val height"></f><f eqn="prod width 1 2"></f><f eqn="prod height 1 2"></f></formulas><path o:connecttype="custom" gradientshapeok="t" textboxrect="@3,@3,@4,@5" o:connectlocs="@8,0;0,@9;@8,@7;@6,@9" limo="10800,10800"></path></shapetype><shape id="_x0000_s1031" style="LEFT: 5760px; WIDTH: 1260px; POSITION: absolute; TOP: 10020px; HEIGHT: 468px" type="#_x0000_t176"><font size="2"></font></shape><line id="_x0000_s1032" style="POSITION: absolute; flip: y" to="3600,8928" from="2880,8772"><stroke endarrow="block"><font size="2"></font></stroke></line><line id="_x0000_s1033" style="POSITION: absolute" to="3600,9708" from="2880,9240"><stroke endarrow="block"><font size="2"></font></stroke></line><line id="_x0000_s1034" style="POSITION: absolute" to="5940,8772" from="4860,8772"><stroke endarrow="block"><font size="2"></font></stroke></line><line id="_x0000_s1035" style="POSITION: absolute" to="5940,9552" from="4860,8772"><stroke endarrow="block"><font size="2"></font></stroke></line><line id="_x0000_s1036" style="POSITION: absolute" to="5760,10332" from="4860,8772"><stroke endarrow="block"><font size="2"></font></stroke></line><shapetype id="_x0000_t202" path="m,l,21600r21600,l21600,xe" o:spt="202" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><path o:connecttype="rect" gradientshapeok="t"></path></shapetype><shape id="_x0000_s1037" style="LEFT: 1800px; WIDTH: 1260px; POSITION: absolute; TOP: 9864px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1037"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN"><font size="2">myThree</font></span></p> </div> </td></tr></tbody></table></textbox></shape><shape id="_x0000_s1038" style="LEFT: 3600px; WIDTH: 1260px; POSITION: absolute; TOP: 9084px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1038"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN"><font size="2">WEB-INF</font></span></p> </div> </td></tr></tbody></table></textbox></shape><shape id="_x0000_s1039" style="LEFT: 3600px; WIDTH: 1620px; POSITION: absolute; TOP: 10332px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1039"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN" style="mso-bidi-font-weight: bold"><font size="2">javaSource</font></span></p> </div> </td></tr></tbody></table></textbox></shape><shape id="_x0000_s1040" style="LEFT: 7020px; WIDTH: 1080px; POSITION: absolute; TOP: 8304px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1040"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN"><font size="2">classes</font></span></p> </div> </td></tr></tbody></table></textbox></shape><shape id="_x0000_s1041" style="LEFT: 7020px; WIDTH: 1080px; POSITION: absolute; TOP: 9240px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1041"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; mso-char-indent-count: 1.0"><span lang="EN"><font size="2">lib</font></span></p> </div> </td></tr></tbody></table></textbox></shape><shape id="_x0000_s1042" style="LEFT: 7200px; WIDTH: 1080px; POSITION: absolute; TOP: 10020px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox style="mso-next-textbox: #_x0000_s1042"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN"><font size="2">Web.xml</font></span></p> </div> </td></tr></tbody></table></textbox></shape><shape id="_x0000_s1043" style="LEFT: 3600px; WIDTH: 1260px; POSITION: absolute; TOP: 9552px; HEIGHT: 780px" type="#_x0000_t132"><font size="2"></font></shape></group>


赶快把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结构(你不要跟我说你没注意到这一点,那我将

分享到:
评论

相关推荐

    Java学习指南(6) 网站入门篇 JavaEE / Servlet

    一、课程简介『Java学习指南系列』的第6篇教程,介绍JavaEE中的网站开发相关的技术 ( Servlet / JSP )。相关术语: Servlet | JSP | AJAX | RESTful | 文件上传 | HTTP GET | HTTP POST | URL Encode | 框架 | 抓...

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java+Web整合开发王者归来++JSP%2BServlet%2BSt...zip.001

    第1篇 入 门 篇 第1章 Java Web开发概述 2 1.1 Web相关概念 2 1.1.1 胖客户端程序RCP 2 1.1.2 瘦客户端程序TCP 2 1.1.3 B/S与C/S结构 3 1.2 Web开发背景知识 3 1.2.1 Web访问基本原理 3 1.2.2 HTTP超文本传输协议 4 ...

    Java Web整合开发王者归来:Java Web.part3

    第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为Struts框架篇,内容不仅包括Struts 1.x的内容,也包括Struts 2.x中的内容;第5篇为Hibernate框架...

    Java Web 整合开发王者归来9/16

    1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟 踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、 资源国际化...

    Java Web整合开发王者归来:Java Web.part1

    第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为Struts框架篇,内容不仅包括Struts 1.x的内容,也包括Struts 2.x中的内容;第5篇为Hibernate框架...

    Java Web整合开发王者归来:Java Web.part2

    第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为Struts框架篇,内容不仅包括Struts 1.x的内容,也包括Struts 2.x中的内容;第5篇为Hibernate框架...

    Java.Web整合开发王者归来.part04.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part02.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    JSP 程序设计从入门到精通 PDF 教程

     第1篇 入门篇 7  第1章 Jsp概述 技术分析 7  1.1 Jsp简介与历史背景 7  1.1.1 日新月异的Web技术 7  1.1.2 什么是JSP 8  1.1.3 JSP技术有以下几个显著的优点 9  1.1.4 JSP和其他类似或相关技术的一个...

    Java.Web整合开发王者归来.part05.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part03.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    《Java Web编程宝典(十年典藏版)》光盘源码

    第3篇为项目实战篇,主要包括讯友联系人管理模块、播客视频管理模块、博客管理模块、明日知道论坛管理模块等4个小型项目:第4篇为商业系统篇,主要包括一个大型的商业项目,即天下淘网上购物商城系统。 《Java Web...

    Java Web开发实战经典-基础篇课后习题答案及高级篇源码

    第三章.XML简介:1,2,3题 第五章.JSP基础语法:1,2题 第六章.JSP内置对象:1,2,3,4,5,6题+系统整合 第七章.JavaBean:1,2,3,4,5,6题 第八章.文件上传:1,2题 第九章.Servlet程序开发:1,2,3,3(扩充)题 第十章....

    Java.Web整合开发王者归来.part01

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part14.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part08.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part09.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part06.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

    Java.Web整合开发王者归来.part13.rar

    第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、...

Global site tag (gtag.js) - Google Analytics