servlet的一个小项目(三)

本文通过具体示例介绍了Servlet的基本使用方法,包括主界面展示、操作成功反馈、ServletContext的应用及文件操作等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

servlet的一个小项目(三)

用的是韩顺平老师的代码:
//主界面

package com.tsinghua;

import javax.servlet.http.*;

import java.io.*;

public class Main extends HttpServlet {

//处理get请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){

    //业务逻辑 

    try {

        //中文乱码
        res.setContentType("text/html;charset=gbk");

        PrintWriter pw=res.getWriter();

        //这个main没什么可说的,跳转过来,直接显示就行了。
        pw.println("<html>");
        pw.println("<body bgcolor=#CED3FF>");

        pw.println("<img src=imgs/1.GIF><hr><center>");

        pw.println("<h1>主界面</h1>");
        //下面这个是跳转到欢迎界面。后面那几个界面没有写,所以现在弄的是问号。
        //添加了对应的界面之后,用对应的名字替换就行了。
        pw.println("<a href=wel>管理用户</a><br>");
        pw.println("<a href=???>添加用户</a><br>");
        pw.println("<a href=???>查找用户</a><br>");
        pw.println("<a href=???>安全退出</a><br>");
        pw.println("</center><hr><img src=imgs/mylogo.gif>");
        pw.println("</body>");
        pw.println("</html>");

    }
    catch (Exception ex) {

        ex.printStackTrace();
    }
}

//处理post请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){

    this.doGet(req,res);

}

}

//操作成功界面,可以复用

package com.tsinghua;

import javax.servlet.http.*;

import java.io.*;


public class Ok extends HttpServlet {


    //处理get请求
    //req: 用于获得客户端(浏览器)的信息
    //res: 用于向客户端(浏览器)返回信息
    public void doGet(HttpServletRequest req,HttpServletResponse res){

        //业务逻辑 

        try {

            //中文乱码
            res.setContentType("text/html;charset=gbk");

            PrintWriter pw=res.getWriter();

            //返回登录界面
            pw.println("<html>");
            pw.println("<body bgcolor=#CED3FF>");

            pw.println("<img src=imgs/1.GIF><hr><center>");

            pw.println("<h1>恭喜你,操作成功!</h1>");
            pw.println("<a href=Main>返回主界面</a>&nbsp;&nbsp;&nbsp;<a href=wel>继续删除用户</a>");
            pw.println("</center><hr><img src=imgs/mylogo.gif>");
            pw.println("</body>");
            pw.println("</html>");

        }
        catch (Exception ex) {

            ex.printStackTrace();
        }
    }

    //处理post请求
    //req: 用于获得客户端(浏览器)的信息
    //res: 用于向客户端(浏览器)返回信息
    public void doPost(HttpServletRequest req,HttpServletResponse res){

        this.doGet(req,res);

    }
}

servletcontext

servletcontext存在于服务器,多个用户均可以访问。

//向servlet context中添加属性


package com.tsinghua;

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

public class ServletContextTest1 extends HttpServlet {


    //处理get请求
    //req: 用于获得客户端(浏览器)的信息
    //res: 用于向客户端(浏览器)返回信息
    public void doGet(HttpServletRequest req,HttpServletResponse res){

        //业务逻辑 

        try {

            //中文乱码
            res.setContentType("text/html;charset=gbk");

            PrintWriter pw=res.getWriter();

            //1得到servletcontext
            //得到是不是就是在服务器的内存获取了一块空间呢?

            ServletContext sc=this.getServletContext();

            //2添加属性 
            //是不是也可以看做是一个表?
            sc.setAttribute("myInfo","我是蜗牛");

            //比较session
            //下面的是获取session,准备往进放。
            HttpSession hs=req.getSession(true);
            hs.setAttribute("test","中国人");
            hs.setMaxInactiveInterval(60*3);
            pw.println("向session中添加一个test属性 他的值是 中国人<br>"); 


            //===当然也可以在servletcontext中放入一个对象
//          Cat myCat=new Cat("小明",30);
//          
//          sc.setAttribute("cat1",myCat);
//          
//          
//          pw.println ("给sevlet context中添加一个属性 cat1 该属性对应的值是一个猫对象<br>");

        }
        catch (Exception ex) {

            ex.printStackTrace();
        }
    }

    //处理post请求
    //req: 用于获得客户端(浏览器)的信息
    //res: 用于向客户端(浏览器)返回信息
    public void doPost(HttpServletRequest req,HttpServletResponse res){

        this.doGet(req,res);

    }
}

class Cat{

    private String name;
    private int age;
    public Cat(String name,int age){

        this.name=name;
        this.age=age;
    }

    public String getName(){
        return this.name;
    }

    public int getAge(){

        return this.age;
    }
}

测试这个页面放入的servletcontext内容:

//从servlet context中得到属性


package com.tsinghua;

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;


public class ServletContextTest2 extends HttpServlet {


    //处理get请求
    //req: 用于获得客户端(浏览器)的信息
    //res: 用于向客户端(浏览器)返回信息
    public void doGet(HttpServletRequest req,HttpServletResponse res){

        //业务逻辑 

        try {

            //中文乱码
            res.setContentType("text/html;charset=gbk");

            PrintWriter pw=res.getWriter();

            //1得到servlet context

            ServletContext sc=this.getServletContext();

            //2得到属性和它对应的值
            //和之前的获取的方式是一样的,一般的用法是一张表,但是也能放入对象。
            String info=(String)sc.getAttribute("myInfo");

            pw.println ("从servlet context中得到属性 myinfo 它对应的值是"+info+"<br>");




            //比较session
            HttpSession hs=req.getSession(true);
            String val=(String)hs.getAttribute("test");
            pw.println("session 中的 test="+val+"<br>");
            //看到没有,获取的方式也是一样的。


            //得到另外一个属性
            //获取对象也是按照对象的名字取出来。
//          Cat myCat=(Cat)sc.getAttribute("cat1");
//          //新建一个对象去接收。
//          pw.println ("从servlet context中得到属性 cat1 他的名字是"+
//          myCat.getName()+" 他的年龄是"+myCat.getAge()+"<br>");



        }
        catch (Exception ex) {

            ex.printStackTrace();
        }
    }

    //处理post请求
    //req: 用于获得客户端(浏览器)的信息
    //res: 用于向客户端(浏览器)返回信息
    public void doPost(HttpServletRequest req,HttpServletResponse res){

        this.doGet(req,res);

    }
}

servletFile用servlet操作文件:

//演示如何在serlvet中操作文件
//演示如何读取文件的内容

package com.tsinghua;

import java.io.*;

import javax.servlet.http.*;

public class ServletFileTest1 extends HttpServlet {


    public void doGet(HttpServletRequest req,HttpServletResponse res){



        try {


            //中文乱码
            res.setContentType("text/html;charset=gbk");

            PrintWriter pw=res.getWriter();

            //创建一个FileReader
            //就这么简单的做法啊。其实想想原理也就这样,
            //你在执行这个程序的时候,向服务器申请了一块空间,
            //这个程序在服务器的内存中,也是一个编译过的class文件吧
            //然后就可以操作服务器硬盘的文件了吧。
            FileReader  f=new FileReader("f:\\myCounter.txt");

            BufferedReader bw=new BufferedReader(f);


             //读出一行数据       
            String numVal=bw.readLine();

             //一定要关闭文件流     
            bw.close();

            pw.println("从文件中读取的数据是:"+numVal);


         }
         catch (Exception ex) {

            ex.printStackTrace();

         }

    }

    public void doPost(HttpServletRequest req,HttpServletResponse res){

        this.doGet(req,res);
    }

}
//演示如何在serlvet中操作文件
//演示如何在文件中写入数据

package com.tsinghua;

import java.io.*;

import javax.servlet.http.*;

public class ServletFileTest2 extends HttpServlet {


    public void doGet(HttpServletRequest req,HttpServletResponse res){

        try {

            //中文乱码
            res.setContentType("text/html;charset=gbk");

            PrintWriter pw=res.getWriter();

            //创建一个FileWriter  看内存数据 ->  磁盘文件(写入,输出)
            //看内存数据 <-  磁盘文件(读入,输入)
            //和普通的java文件没有区别。
            FileWriter  f=new FileWriter("f:\\myCounter.txt");

            BufferedWriter bw=new BufferedWriter(f);

            //在文件中写入数据  
            bw.write("1");

            //关闭文件流
            bw.close();

            pw.println("在文件中写入了数据");


         }
         catch (Exception ex) {

            ex.printStackTrace();

         }

    }

    public void doPost(HttpServletRequest req,HttpServletResponse res){

        this.doGet(req,res);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值