您的位置:首页 > 其它

servlet小总结2 在JCreator下需要配置的servlet

2012-10-12 22:25 85 查看
1 jsp=html+java片段+jsp语法+javascript
Jsp优势:
1一次编写,到处运行
2良好的跨平台性(基于java)
3多种开放工具支持
4强大的可伸缩性(jsp+javabean)的方式
Jsp的不足:
1jsp产品的复杂度高(jsp入门比asp难)
2jsp要求运行的机器配置要求高,因为jsp是用class常驻内存的方式运行的,效率高,但是需要占用更多的内存

2 1servlet(java服务器小程序)是用java编写的服务器程序,它的特点:
1它是由服务器端调用和执行的
2它是用java语言编写的
3它是按照Servlet规范开发的
4功能强大,可以完成几乎所有的网站功能
5是学习jsp的基础

3servlet开发流程
(1)
在你安装的tomcat的webapps下建立自己的应用(文件夹,例如myWebsite),在此文件夹下建立文件夹WEB-INF,在此文件夹中建立如下:classes子文件夹,lib子文件夹,web.xml文本(写该网站的配置信息)
(2)
开发servlet程序(需要引入servlet-api.jar,用JCreator开发的话,引入它,在configure下的options,找到你安装的jdk-à,编辑--àadd-àarchive-à到你安装的tomcat的common文件夹中的lib文件夹中的servlet-api.jar)
(3)
在web.xml中部署servlet,添加相应代码
例如<servlet>
<!--给你的servlet取名,任意-->
<servlet-name>hello</servlet-name>
<!--指明servlet的路径,即(包名+类名)-->
<servlet-class>com.ly.Hello</servlet-class>
</servlet>

<servlet-mapping>
<!--给你的servlet取名,任意-->
<servlet-name>hello</servlet-name>
<!--这是在浏览器中输入的访问该servlet的url,名是任意的
-->
<url-pattern>/sp</url-pattern>
</servlet-mapping>
(4)启动tomcat访问你的servlet,在浏览器的地址栏中输入:
http://127.0.01:8080/myWebSite/hello(此为你在web.xml中配置的servlet的url)
回车就可看到servlet的输出
注意: 127.0.0.1是服务器所在的ip,也是换成localhost,如果要访问别的tomcat,应换成与之对应的ip
8080是端口号,要根据实际情况而定

4学习了开发servlet的三种方法,分别用(1实现servlet接口,2继承GenericServert
,只需要重写service方法,相对简单一点 3继承HttpServlet,需要重写doGet,doPost方法)这三种方法实现servlet,使该servlet完成一个简单的功能,即向浏览器回送
Hello,world!
第一种:实现servlet接口
编写程序hello.java如下
package com.ly;

import javax.servlet.*;
import java.io.*;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;

public class Hello implements Servlet{
/**
* Method init
*
*
* @param parm1
*
@throws ServletException
*
*/
//该函数用于初始化该servlet
//该函数只会被调用一次,当用户第一次访问该servlet时被调用
public void init(ServletConfig parm1) throws ServletException {
// TODO: Add your code here
System.out.println("init it");
}

/**
* Method getServletConfig
*
*
* @return
*
*/
public ServletConfig getServletConfig() {
// TODO: Add your code here
return null;
}

/**
* Method service
*
*
* @param parm1
* @param parm2
*
@throws ServletException
@throws IOException
*
*/
//这个函数用于处理业务逻辑
//程序员应该把业务逻辑写在这里
//当用户每访问该servlet时都会被调用
//req
用于获得客户端的信息
//res
用于向客户端(因为是b/s结构,所以为浏览器)返回信息
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// TODO: Add your code here
//res不能直接返回,需从res中得到PrintWriter

PrintWriter pw=res.getWriter();
pw.println("hello,world");

}

/**
* Method getServletInfo
*
*
* @return
*
*/
public String getServletInfo() {
// TODO: Add your code here
return "";
}

/**
* Method destroy
*
*
*/
//销毁servlet实例(释放内存)
//有三种情况下会调用它,1reload
该servlet(wabApps)2关闭tomcat 3关机
public void destroy() {

// TODO: Add your code here
System.out.println("destroy!");
}

}

对应在web.xml下配置如下

<servlet>

<!--给你的servlet取名,任意-->

<servlet-name>hello</servlet-name>

<!--指明servlet的路径,即(包名+类名)-->

<servlet-class>com.ly.Hello</servlet-class>

</servlet>

<servlet-mapping>

<!--给你的servlet取名,任意,但注意需要与上面你起的servlet名一致,一样-->

<servlet-name>hello</servlet-name>

<!--这是在浏览器中输入的访问该servlet的url,名是任意的
-->

<url-pattern>/ly</url-pattern>

</servlet-mapping>

第二种:继承GenericServer

程序HelloGen.java如下:

//这是第二种开发servlet的方法(通过继承GenericServlet开发)

package com.ly;

import javax.servlet.GenericServlet;

import javax.servlet.*;

import java.io.*;

public class HelloGen extends GenericServlet{

//重写service方法即可

public void service(ServletRequest req,ServletResponse res){

//返回hello,world!generic

try {

PrintWriter pw=res.getWriter();

pw.println("hello,world!generic");

}

catch (Exception ex) {

//想控制台打印错误信息

ex.printStackTrace();

}

}

}

同样在对应的web.xml中配置如下:

<servlet>

<!--给你的servlet取名,任意-->

<servlet-name>hellogen</servlet-name>

<!--指明servlet的路径,即(包名+类名)-->

<servlet-class>com.ly.HelloGen</servlet-class>

</servlet>

<servlet-mapping>

<!--给你的servlet取名,任意-->

<servlet-name>hellogen</servlet-name>

<!--这是在浏览器中输入的访问该servlet的url,名是任意的
-->

<url-pattern>/hellogen</url-pattern>

</servlet-mapping>

第三种:继承HttpServlet,需要重写doGet,doPost方法

程序HelloHttp.Java如下:

//这是第三种开发servlet的方法(通过继承HttpServlet,重写doGet,

doPost方法)

package com.ly;

import javax.servlet.http.*;

import java.io.*;

public class HelloHttp extends HttpServlet{

//处理get请求

//req
用于获得客户端的信息

//res
用于向客户端(因为是b/s结构,所以为浏览器)返回

信息

public void doGet(HttpServletRequest req,HttpServletResponse

res){

//业务逻辑

try {

PrintWriter pw=res.getWriter();

pw.println("hello,http");

}

catch (Exception ex) {

ex.printStackTrace();

}

}

//处理post请求

//req 用于获得客户端的信息

//res
用于向客户端(因为是b/s结构,所以为浏览器)返回

信息

public void doPost(HttpServletRequest

req,HttpServletResponse res){

this.doGet(req,res);

}

}

同样相应在web.xml中配置如下:

<servlet>

<!--给你的servlet取名,任意-->

<servlet-name>hellohttp</servlet-name>

<!--指明servlet的路径,即(包名+类名)-->

<servlet-class>com.ly.HelloHttp</servlet-class>

</servlet>

<servlet-mapping>

<!--给你的servlet取名,任意-->

<servlet-name>hellohttp</servlet-name>

<!--这是在浏览器中输入的访问该servlet的url,名是任意的
-->

<url-pattern>/hellohttp</url-pattern>

</servlet-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: