- 浏览: 124473 次
- 性别:
- 来自: 深圳
文章分类
最新评论
1,新建一个WEB工程:servletTest
在工程目录下会出现两个文件夹:src和WebRoot
src用于存放工程源代码,WebRoot\WEB-INF下有两个目录,分别是classes和lib,还有一个web.xml文件(部署描述符)。
classes用于存放所有编译生成的class文件,lib用于存放所有第三方lib包。
2,三种部署方式:
一,修改tomcat的配置文件
配置tomcat的conf目录下的server.xml文件,
<Context path="/servletTest" docBase="E:\workspace\servletTest\WebRoot" reloadable="true"/>
path指的是逻辑路径,用于映射docBase的物理路径。reloadable指当页面内容改变时,服务器会自动重启加载。
经过如上配置后,输入如下地址即可访问该工程的页面。
http://localhost:8080/servletTest/index.jsp
二,使用myeclipse的部署:
选中工程,然后点击工具栏上的部署按钮,弹出如下窗口,点击确定后,会在tomcat的webapps目录下生成一个以当前工程名命名的目录(此名称可手工修改),并将工程中的WebRoot目录下的文件复制到此目录下。用户同样可通过如下地址访问。
http://localhost:8080/servletTest/index.jsp
三:使用myeclipse生成WAR包部署:
部署完后,会在tomcat的webapps目录下生成一个servletTest.war包文件,启动tomcat时,会自动解压此文件。同样可通过如上的地址访问。
推荐使用第一种方式部署!
-----------------------------------------------------------------------------------------
下面写一个servlet程序在页面上显示"hello world"
package com.kingdee.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; public class HelloWorldServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html><head><title>hello world</title></head>"); out.println("<body><h1>Hello World</h1></body></html>"); out.flush(); } }
修改web-inf目录下的web.xml文件,需注意:servlet必须要配置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"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>com.kingdee.servlet.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> </web-app>
在浏览器中输入 http://localhost:8080/servletTest/HelloWorld
页面上会显示Hello World
使用JSP显示HelloWorld并显示当前时间
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>My JSP 'HelloWorld.jsp' starting page</title> </head> <body> Hello World <%=new java.util.Date().toLocaleString() %> </body> </html>
我们可以将Servlet看作是嵌套了html代码的JAVA类,可以将JSP看作是嵌套了JAVA类的HTM页面。
下面编写一个简单的登录页面:
在JSP页面填写用户名与密码,在SERVLET中进行处理。需注意action中的路径,
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <form action="/servletTest/login"> username:<input type="text" name="username"></input><br> password:<input type="password" name="password"></input><br> <input type="submit" value="提交"></input> <input type="reset" name="重置"></input> </form> </body> </html>
package com.kingdee.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; public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html><body>"); out.println("username:"+username+"<br>"); out.println("password:"+password+"<br>"); out.println("</body></html>"); out.flush(); } }
同样要配置web.xml文件
<servlet> <servlet-name>Login</servlet-name> <servlet-class>com.kingdee.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
上面的例子中 <form action="/servletTest/login">如果没定,就会用默认的get方式提交表单,这样会在URL地址中显示出参数与参数值。如下就显示出了用户名与密码的值。
http://localhost:8080/servletTest/login?username=sdf&password=fff
采用POST的方式需要在servlet类中重写doPost方法:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html><body>"); out.println("username:"+username+"<br>"); out.println("password:"+password+"<br>"); out.println("</body></html>"); out.flush(); }
并将<form action="/servletTest/login"> 改为<form action="/servletTest/login" method="post">
POST方式不会在URL地址中显示出参数值.
下面是POST与GET的差别,get有长度限制,POST没有,下图中POST格式中有好几处换行。
此外使用浏览器进行文件上传时,一定要使用POST,而绝不能使用GET。
相对路径与绝对路径:
将<form action="/servletTest/login" method="get">改为<form action="login" method="get">也可以访问成功,login是相对路径,相对于/servletTest。建议使用相对路径。
其中/servletTest是工程名。
发表评论
-
深入研究Servlet线程安全性问题(转)
2012-11-21 00:13 710http://www.yesky.com/334/195133 ... -
Web开发20:Http详解
2011-07-31 02:01 1106所谓无状态是指你发 ... -
Web开发19:自定义标签库
2011-07-24 21:55 672所谓上层标签就如下面的bbb标签 ... -
Web开发18:EL表达式
2011-07-24 19:38 686f -
Web开发17:Servlet监听器
2011-07-24 00:01 1395写了一个MyServletContextList ... -
WEB开发 16:Servlet Filter
2011-07-23 16:37 1309doFilter方法中有一个Fil ... -
Web开发15:Session在实际项目中的应用
2011-07-22 23:50 1148写一个登录例子: 用户在login.jsp页面登录,如果用户 ... -
Web开发14:Session
2011-07-19 00:52 1166当客户端浏览器第一次访问时,会在服务器的Servl ... -
Web开发13:Cookie
2011-07-17 23:31 844下面是个简单的例子,演示在客户端添加Coo ... -
Web开发12:Servlet多线程同步问题详细探寻
2011-07-17 22:50 1118下面看一个具体的 ... -
Web开发11:Servlet
2011-07-17 02:08 804我们编写的Servlet一般继承HttpServ ... -
Web开发10:对复杂表单进行客户端服务端验证
2011-07-16 19:27 975对上面这个用户基本信息页面进行客户端与服务器端的验证,下面 ... -
Web开发9:JavaBean
2011-07-16 00:05 440具体实例: 写一个JAV ... -
Web开发8:使用JavaScript与Servlet实现客户端与服务器端验证
2011-07-14 23:30 1106下面写一个注册页面 register.jsp,主 ... -
Web开发7:请求转发与重定向的区别
2011-07-13 22:11 1067需注意的是:所谓重 ... -
Web开发6:JSP内置对象比较与分析2
2011-07-11 21:25 967先看个小例子: request1.jsp <%@ p ... -
Web开发5:JSP内置对象比较与分析
2011-06-24 00:21 941内置对象与J2EE类的映射 以下是reques ... -
Web开发4:JSP转换为Servlet源代码深度解析
2011-06-22 00:20 1462JSP的注释写法是:<% ... -
Web开发3:Tomcat根据JSP生成Servlet机制深度剖析及核心源代码详解
2011-06-21 00:10 16941:什么是JSP(Java Server Pages): 在 ... -
Web开发1:Tomcat环境配置
2011-06-15 23:40 830从http://tomcat.apache.org/获取T ...
相关推荐
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part46
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part21
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part08
`web.xml`是Java Web应用程序的核心配置文件之一,主要用于定义Web应用程序的结构与行为。它是Servlet容器(如Tomcat)读取Web应用程序配置信息的主要来源,因此深入理解其配置项及其作用至关重要。 #### 二、web....
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part42
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part02
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part54
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
Web.xml 中的 listener、filter、servlet 加载顺序及其详解 在 Web 应用程序中,web.xml 文件扮演着非常重要的角色,它定义了 Web 应用的结构和配置。其中,listener、filter、servlet 是三个非常重要的概念,它们...
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part57
在 web.xml 文件中,第一个元素是 XML 头,用于声明 XML 版本和字符编码。紧接着是 DOCTYPE 声明,用于指定 Servlet 规范的版本和文档类型定义(DTD)。最后是 web-app 元素,作为根元素,包含了所有其他元素。 ...
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part69
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part63
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part12
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part60
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part33
例如,XML头必须是文件的第一项,`DOCTYPE`声明必须紧跟其后,`<web-app>`元素必须紧随`DOCTYPE`声明。在`<web-app>`元素内部,元素的顺序同样非常重要。尽管服务器不一定强制执行这种顺序,但允许(实际上有些...