Servlet学习笔记《二》

                                          Servlet学习进度

闲聊:今晚整理下思路,总结下最新的Servle进度,发现写博客是个好习惯,既可以总结整理知识,以后忘记了还可以回过头来迅速学习,事半功倍!

今晚先整理有一个 ,明天再来一个 一:简单的报表数据提交。//二:请求的转发。


废话不多说:问题一:简单的报表提交

思路:

               一:建立JavaWeb项目,我这里偷懒,直接在netbeans建立项目

               二:在web.xml配置文件中设置报表为默认启动页面,这里的报表我用servlet编写,用html或者jsp编写也是可以的啦。

               三:编写处理报表数据的Servlet,记得在web.xml中要配置,还有个报表的action要和Servlet的url一模一样除了"/"这个符号!


步骤一:编写报表

报表首先要有报表嘛,在这里我用简单的登录信息报表,也就是说只有用户名,密码,用servlet类编写的一张报表,简单粗暴点,直接贴代码


package hjr;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author hjr
 */
public class Login extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        PrintWriter pw = response.getWriter();
        pw.println("
   
   
"); pw.println("
"); pw.println("
"); pw.println("
用户名
"); pw.println("
"); pw.println(" "); pw.println("
"); pw.println("
密码
"); pw.println("
"); pw.println(" "); pw.println("
"); pw.println("
"); pw.println("
"); pw.println(" "); pw.println(" "); pw.println("
"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override public String getServletInfo() { return "Short description"; } }

步骤二:编写Servlet类

老规矩,直接上代码

package hjr;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author hjr
 */
public class myServlet extends HttpServlet {

    private String Welcome;

    @Override
    public void init() {
        Welcome = this.getInitParameter("welcome");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("gb2312");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String welcome = Welcome;
        PrintWriter out = response.getWriter();
        out.println("");
        out.println("");
        out.println("");
        out.println("Servlet Test");
        out.println("");
        out.println("");
        if (username.equals("huangjinrong") && password.equals("dabai_cai")) {

            out.println("

" + Welcome + username + "

"); } else { out.println("

" + username + "你不是用户

"); } out.println(""); out.println(""); out.close(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override public String getServletInfo() { return "hello servlet"; } }

这里说一下,我又偷懒了,doGet,doPost我只写了一个,报表的用得是post.默认是get,但get有数据大小的限制,而且传递的数据会暴露在浏览器的url栏,

仔细观察就可以发现,而理论上post数据可以无限大小,而且数据不会暴露在url栏,安全性高。


步骤三:配置文件的编写

还是看代码!!!!!!!!!!!!!!!!!!!!!!!!


   
   

   
   
    
    
    
        
     
     
      
      contextConfigLocation
     
     
        
     
     
      
      /WEB-INF/applicationContext.xml
     
     
    
    
    
    
    
    
        
     
     
      
      org.springframework.web.context.ContextLoaderListener
     
     
    
    
    
    
    
    
        
     
     
      
      dispatcher
     
     
        
     
     
      
      org.springframework.web.servlet.DispatcherServlet
     
     
        
     
     
      
      2
     
     
    
    
    
   
   
   
    
    
        
     
     
      
      Login
     
     
        
     
     
      
      hjr.Login
     
     
    
    
    
    
    
    
        
     
     
      
      Login
     
     
        
     
     
      
      /login
     
     
    
    
    
    
    
    
    
    
        
     
     
      
      myServlet
     
     
        
     
     
      
      hjr.myServlet
     
     
        
     
     
            
      
      
       
        welcome
      
      
            
      
      
       
        welcome to myWebServlet dear: 
      
      
        
     
     
    
    
    
    
    
    
        
     
     
      
      myServlet
     
     
        
     
     
      
      /myServlet
     
     
    
    
    
    
    
    
    
    
    
        
     
     
      
      
            30
        
     
     
    
    
    
    
    
    
        
     
     
      
      login
     
     
    
    
    

   
   

注意点: 第一:首页是login
                第二:login的报表的action和myServlet的url一样,除了"/"号
                第三:servlet有包名要加上去,补全

最后整理几句,方便以后看:

WEB-INF目录对客户端是不可见的

Init()方法中,本质是调用getServletConfig()来获取ServletConfig对象,然后再调用各个初始化方法

servlet容器用反射调用servlet的默认构造方法,即无参构造方法,所以我们在写servlet类时,不能写带参

的构造方法


servlet何时destory??,需要释放内存或者容器关闭时,还有该servlet抛出异常,表示永久不可用时。


每个WebApplication只有一个ServletContext,保存着App的上下文信息,所有App里面的servlet都可以访问


好困........明天继续整理!!!!!!!!!!!!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值