servlet常用的方法

首先servlet是在服务器端运行的java程序,可以接收客户端的请求并做出响应。

一个servlet继承了Javax.Servlet.Http.HttpServlet,用到的接口有genericServlet抽象类、HttpServlet抽象类、ServletConfig接口


ServletContext接口:

void setAttribute (String name, Object object ),键值对形式的有参构造,并且值是Object类型的。就是将某个对象放在容器中。

Object getAttribute (String name ),就是上面对应的拿到这个对象的方法,这两个通常搭配使用,用来在一个Context容器中获取数据。

但是有一个弊端就是容器中有很多对象,其他Servlet的对象就有可能被读取,可能会发生错误。

String getRealPath (String path ),用来获取当前项目的真是路径,属于不记不行,就是会用到。


ServletRequest接口:

最最最重要方法之一:String getParameter ( String name ),传递一个字符串类型的数据,用来获取页面上的参数(name的值)

void setAttribute (String name, Object object ),也是将对象放在先放入请求中,

再用Object getAttribute ( String name ),拿出来用,在页面上传递参数用的两个配套方法,

void removeAttribute (String name),就是将这个删除这个被放入的对象。

void setCharacterEncoding (String charset ),设置请求中的字符编码,一般为UTF-8

String[ ] getParameterValues (String name ),是拿到页面上的一组多个参数,返回一个数组,常见于多选按钮,同一组数据多个值。拿回来之后再去遍历或者进行其他操作。

RequestDispatcher getRequestDispatcher( String path ),俗称转发,就是可以带着数据去到下一个页面,下面会说到重定向,在文末进行区分。


ServletResponse接口:

PrintWriter getWriter ( ),获取一个打印对象,可以显示在页面上。

void setContentType ( String type ),设置响应中的字符集text/html;charset=UTF-8

void setCharacterEncoding (String charset ),设置响应中的字符编码,一般为UTF-8


以下就是带有Http的接口

HttpServletResponse接口

void addCookie ( Cookie cookie ),在一次响应中添加cookie,cookie实在浏览器上保存用户的各项数据,非常的不安全,但是却减少了用户在关闭浏览器的情况下,频繁访问某个网站要登录等重复的操作,在现在的大多数网站应用广泛。并且在new Cookie的时候他只有一个有参构造就是(String name,String name),两个都是String,这和Context,Session,request中的setAttribute传递的参数是不一样的,要进行区分。

void sendRedirect(String location),俗称重定向,参数就是一个URL,就是将当前这个URL重定向到参数这个URL中,以便于用户不会看见后端在处理控制页面所显示的URL。这个一般和Session搭配着使用,非常方便后端拿到想要的数据,并且在Session有效期内数据都是有效的。所以Session的有效期是多久呢?

        Session结束的4种方式:

                1. 用户主动关闭浏览器

                2. 服务器宕机

                3. 超时,一般默认30min

                4. 手动设置Session失效


HttpServletRequest接口:

Cookie[ ] getCookies( ),请求获取所有的cookie,返回一个cookie的数组。值得注意的是cookie是在请求中获取的,而不是响应。

HttpSession getSession( ),用来获取session,返回一个HttpSession可以做以下的事情


HttpSession接口:

void setAttribute(String key, Object value),将对象放进session中,以便于在整个会话中拿这个对象都可以拿到。

Object getAttribute(String key),就是拿到当前会话的session,也是键值对的形式,根据键来拿值

void removeAttribute(String key),删除一个session中的存放的对象。

void invalidate(),让session失效,没有参数传递,一般在实际中应用的场景就是用户的安全退出功能。


这里我们说一下转发和重定向的区别,并给出实例分析:

        转发:访问请求1次,转发到哪里URL不会改变

        重定向:请求2次,URL会改变。        

        理解一下:转发就是login转发到controler,实际响应用户的页面是main.do的页面,但是URL地址上是controler;重定向就是login重定向到controler,实际上是main.do自己去响应了用户,URL地址上就是main.do

Cookie和Session的区别:

Cookie Session
浏览器存数据 服务器存数据

只有一个有参构造

(String name,String name)

(String name,Object name)
设置生命周期SetMaxAge('秒')

生命周期4种结束方式:

              1. 用户主动关闭浏览器

2. 服务器宕机

                 3. 超时,一般默认30min

                4. 手动设置Session失效

不安全 安全

 本篇完

猜你喜欢

转载自blog.csdn.net/m0_48011056/article/details/126433449