如何写selvlet

作者:邹爱红

撰写时间:2019年05月18日

 

如何自定义servlet

new 一个class类,servlet实现的本质是需要继承一个类   httpservlet,

  1. 如何调用  有两个方法   doget  dopost

 当发出客户端请求的时候,调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。doGet和doPost都接受请求(HttpServletRequest)和响应(HttpServletResponse)。

  • form运行方式:form框里面的methodget时,执行doGet方法
    form框里面的methodpost时,执行doPost方法

 

  • get数据量长度有限制,而Post则没有限制,

 

  • GET方式:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低。

POST方式:安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在HTTP HEADER内一起传送到ACTION所指的URL中,用户是看不见的。

  1. 如何访问  在web xml的文件里面,去配链接访问  

点进web.xml配置的soure

<servlet>

  <servlet-name> DemoServlet </servlet-name>

  <servlet-class>com.ly.web. DemoServlet</servlet-class>  这个路径是当前servlet存在的路径   按住ctrl键会有一行蓝色的线,就是写对了

</servlet>

 

<servlet-mapping>

 <servlet-name>DemoServlet</servlet-name>

 <url-pattern>/servlet/DemoServlet</url-pattern>指定它的访问方式

</servlet-mapping>//指定它的路由

发布方式:点开绿色的那个箭头,然后选择manage Deployments点进去

 

在server的这个下拉框选择myeclipse  Tomcat

点add进入这个页面,下拉框选择要发布的项目

然后运行项目:

第一种  Run Server  一般不要用默认的

第二种  debug  server  用这个比较好

servlet中的四个对象:

  servletConfig  servletContext  request  response

 

怎样获取servletConfig 对象:

ServletConfig sc=this.getServletConfig();//获取servletConfig 

因为servlet中的接口已经把这个方法写好了,getServletConfig可以获取里面的参数

//1.可以这样获取

        System.out.println(sc.getInitParameter("username"));

//2.还可以这样去获取

    Enumeration<String> e=sc.getInitParameterNames();     //用枚举来接收

    while (e.hasMoreElements()) {

        String string = (String) e.nextElement();

        System.out.println(string);

    }

但是这个参数要去web里面定义好

<init-param>

  <param-name>username</param-name>

  <param-value>root</param-value>

 </init-paramservlet初始化的时候就可以把那个参数放进去

 

servletContext  也可以拿 ,配置不一样

需要这样去配置

<context-param>

<param-name>username</param-name>

<param-value>root</param-value>

</context-param>

//第一种

    ServletContext sct=this.getServletContext();

    //第二种方式 通过servletconfig去获取servletcontext

//  ServletContext sct1=this.getServletConfig().getServletContext();

    System.out.println(sct.getInitParameter("username"));

结果:就拿到root

 

request 请求

    request.setCharacterEncoding("UTF-8");

    System.out.println(request.getParameter("username"));

    System.out.println(request.getParameter("password"));

    System.out.println("uri:   "+request.getRequestURI());//统一资源标识符,指的是路径的前半段

    System.out.println("url:   "+request.getRequestURL());//同一资源定位符,定位这个资源在哪里

request.getSession().getAttribute("");//content的值传到jsp里面,用来交互的

request.setAttribute("", "");//不把它放到session里面也可以做

 

response:响应,回应一下有没有数据

    response.setHeader("Refresh","3");//设置每隔3秒就自动刷新一次

//  response.setStatus(302);//状态码302就代表重定向,状态码得到的是一个异常,然后自定义异常,跳转到自定义的页面去

//  resp.setHeader("location","http://www.baidu.com");//

重定向和转发它的区别在哪里:重定向没有参数,只是跳转页面,转发有参数。带参数跳转页面

重定向:地址栏改变/参数不共享

    response.sendRedirect("");重新发布请求

 

转发:地址栏不变,参数共享

request.setAttribute("username", "123");//前面是key,后面是value,键值对的形式,在jsp里面如何拿到这里负的值,前面的是变量名,后面的是赋值

//getRequestDispatcher 得到我们的请求路径 forward转发的意思,就是转发这个请求

request.getRequestDispatcher("/jsp/demo.jsp").forward(request, response);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值