Servlet开发整理

动态网页技术的发展:
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 req,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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值