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

Servlet开发整理

2016-02-24 14:50 417 查看
动态网页技术的发展:

cgi->asp=html+javascript+com组件->php->jsp=html+java片段+jsp语法+js







Jsp要求运行的机器配置要高,因为jsp是用class常驻内存的方式运行的,效率高,但是需要占用更多的内存。

b/s 模式 服务器浏览器模式

c/s 模式 服务器客户端模式



Servlet(java 服务器小程序)是用java编写的服务器程序,它的特点:

1、 它是由服务器端调用和执行的

2、 它是用java语言编写的

3、 它是按照servlet规范开发的

4、 功能强大,可以完成几乎所有的网站功能

5、 是学习jsp的基础



开发servlet三种方法

① 实现servlet接口

② 继承GenericServlet

③ 继承HttpServlet

实现servlet接口





调用destory()函数

① reload该servlet

② 关闭tomcat

③ 关机



Servlet的生命周期

继承接口方法开发servlet



通过继承GenericServlet 开发servlet

通过GenericServlet去开发servlet,只需要重写service方法

一个案例

代码如下:

package com.no2;
import javax.servlet.*;
import java.io.*;
public class HelloGeneric extends GenericServlet{

public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter pw=res.getWriter();
pw.println("hello genericservlet");
}
}


通过继承HttpServlet来开发servlet



一个案例

代码如下

package com.no3;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloHttp extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse res){
try {
PrintWriter pw=res.getWriter();
pw.print("hello http");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}


同一用户的不同页面共享数据

SendRedirect()方法





例如:

传递的页面Res.sendRedict(“wel?uname=”+u+”&pswd=”+p);//会在地址栏显示用户名和密码

接收的页面 String u=req.getParameter(“uname”); System.out.println(u);

用HIDDEN方法来实现

Session

Session是属于双击一次打开的一个浏览器的,而不是属于客户端的



操作session,由上图可以看到session是存在服务器端的,而cookie是存在客户端的





Session是非常重要的,在网站开发中可以完成的功能很多比如:

网上商城的购物车,保存登陆用户的信息,将某些数据放入到session中,供同一个用户的各个页面使用,防止用户非法登陆到某个页面。

String sessionId=hs.getId(); //用于得到session的id

设置session的默认时间(发呆时间 ),默认是秒

Hs.setMaxInactiveInterval(30);

也可以通过设置时间为0来注销session

在servlet中显示图片,只需要用html显示图片就好了

分页





Cookie

服务器在客户端保存用户的信息,比如用户名,密码,就是cookie



Cookie和session的比较





ServletContext

多个用户共享同一数据,一个公共的空间,可以被所有用户访问



注意事项

因为存在servletContext中的数据会长时间的保存在服务器,会占用内存,因为不建议向servletContext中添加过大的数据。

如果是涉及到不同用户共享数据,而这些数据量不大,同时又不希望写入数据库中,我们就可以考虑使用servletContext

Servlet中操作文件

因为servlet本来就是一个java文件,所以和java文件操作文件是一样的。

一个案例:

代码如下:对文件的读操作

package com;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletIo extends HttpServlet{
public void doGet(HttpServletRequest r
4000
eq,HttpServletResponse res){
try {
res.setContentType("text/html;charset=gbk");
FileReader fr=new FileReader("D:/ab.txt");
BufferedReader br=new BufferedReader(fr);
String sw=br.readLine();
br.close();
PrintWriter pw=res.getWriter();
pw.print("读出的数据是"+sw);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}


显示用户的IP地址

Req.getRemoteAddr();

显示用户的主机名

Req.getRemoteHost();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet java