您的位置:首页 > 编程语言 > Java开发

javaweb基本组件之servlet的使用

2015-04-25 18:56 387 查看
开发环境的搭建

1. 选择windows7操作系统作为开发平台

2. 安装jdk,java应用开发的必备,安装的是目前最新的jdk8

3. 下载一个开发IDE,这个根据个人习惯,用的是目前java开发者使用最多的Eclipse好用又免费(版本代号luna)

4. 安装webserver,以便调试web应用,用的是apache开源的tomcat服务器

5. 再下一个eclipse连接tomcat服务器的插件,方便我们直接在eclipse中调试应用的代码,这个网上都能找到的,下载下了之后扔到eclipse安装目录有个叫做plugins的文件夹中,之后关闭重新起动eclipse,就可以看见那三个调试用的猫咪了

进入开发阶段

1. File->New->Project..->Web->Dynamic Web Project->next输入javawebdemo创建一个动态的javaweb项目,修改src下源代码文件自动编译后生成的class文件的输出目录为WebContent\WEB-INF\classes(通常WebContent这个文件夹是系统自动为我们生成的,我们只是需要修改下编译后的文件的输出目录),再next,并勾选自动生成web.xml选项按钮,之后IDE会为我们自动生成web.xml这个java web应用核心的配置文件

2. 打开工程的目录结构,可以看到有二大目录,分别是src, WebContent当然还有一个叫做JRE System Library的引用目录,引用的就是jdk中lib了,都是java源代码编译和运行的基础jar包了,还应该把tomcat安装目录中的lib下的常用的几个jar包添加到工程的引用,或者是直接将它们复制到WEB-INF下的lib目录中就可以了,它们分别是(servlet.jar, jsp.jar, el.jar等)

3. 打开WebContent->WEB-INF目录,可以看到一个lib目录和一个web.xm文件,lib里面放的是以后开发项目时我们经常会用到的框架和工具的jar包,打开web.xml文件,可以看到eclipse已经自动生成了如下的配置代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>javawebdemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>


4.以后所有项目的源代码文件就放在了src目录下了,静态以及一些其他的资源性的文件就放到了WebContent目录下面,WebContent以后就是我们应用访问的根目录了,我们创建css,js,images等目录分别用来存放样式,脚本以及图片等静态类型的文件

5. 再在WebContent目录下创建一个index.html的文件,把我们工程的根目录配置到tomcat\conf\server.xml中的元素中docBase中,在eclipse中起动tomcat,如没有报错则打开浏览器输入127.0.0.1:8080就可以看到我们刚面添加的index.html页面了

6. 现在用servlet来接受一个http的请求,并获取其传来的参数,在src目录中创建一个com.demo.serlvet的package,在该package中新建一个MyServlet的class文件并且继承HttpServlet这个类,如下:

package com.demo.servlet;

import java.io.IOException;

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

public class MyServlet extends HttpServlet{
//API: http://127.0.0.1:8080/myservlet?name=bradpitt&age=18 public void doGet(HttpServletRequest req, HttpServletResponse res){//覆盖HttpServlet类的doGet方法来实现自己的逻辑
String name = req.getParameter("name");
String age  = req.getParameter("age");
System.out.println(name);
System.out.println(age);
req.setAttribute("name", name);
req.setAttribute("age", age);
try {
req.getRequestDispatcher("/welcome.jsp").forward(req, res);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req, HttpServletResponse res){
this.doGet(req, res);
}
}


7.此外我们还要建一个welcome.jsp文件作为对请求的回应页面

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>welcome</title>
</head>
<body>
<h1>Hello ${name}, you age is ${age}</h1>
</body>
</html>


8.将该servlet部署到web.xml文件中,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>javawebdemo</display-name>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>com.demo.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>

</web-app>


9.再次启动tomcat,然后打开浏览器,在地址栏中输入http://127.0.0.1:8080/myservlet?name=bradpitt&age=18,可以看到对应的结果页面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: