服务器

来源:weixin_42010394 发布时间:2018-11-14 10:59:13 阅读量:954

一 Servlet

    1.1通过实现接口方法实现Servlet 


            


public class AServlet implements Servlet{

//销毁时被调用

public void destroy() {

System.out.println("我销毁了");

}

//获取Servlet的配置信息

public ServletConfig getServletConfig() {

// TODO Auto-generated method stub

return null;

}

//获取Servlet的介绍信息

public String getServletInfo() {

// TODO Auto-generated method stub

return null;

}

//创建时被调用

public void init(ServletConfig arg0) throws ServletException {

System.out.println("我创建了");

}

//请求时被调用

public void service(ServletRequest arg0, ServletResponse arg1)

throws ServletException, IOException {

System.out.println("我处理请求");

}

}

1.2 ServletConfig


        ServletConfig表示Servlet的配置信息


        常用方法:


                String getServletName():获取Servlet的名称


                ServletContext getServletContext():获取Servlet的上下文(三大域,详情见后)


                Enumeration getInitParameterNames():获取所有初始化参数的名称


                String getInitParameter(String name):根据配置名称获取对应的值


        引入Enumeration,这个类似于Iterator(迭代器),两个方法,boolean hasMoreElements(); E nextElemenet()


1.3 ServletContext


    Servlet的上下文,用来共享数据/传递数据


    服务端三大域:ServletContext(或者application)


                            Request


                            Session


    介绍几种方法:


                  Object getAttribute(String name):获取指定name的值


                   void setAttribute(String name,Object obj):往域中存指定名称的值


                    void removeArrtibute(String name):去域中指定的值


                    String getContextPath():获取当前项目的路径


                    String getRealPath():获取真实路径


                    Enumeration getInitParameterNames():获取所有初始化参数的名称


                    String getInitParameter(String name):根据配置名称获取对应的值


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

ServletContext sc=this.getServletContext();

sc.setAttribute("name", "Tom");

System.out.println(sc.getAttribute("name"));

System.out.println(sc.getContextPath());

System.out.println(sc.getRealPath("User.jsp"));

System.out.println("-------------------------------");

Enumeration<String> enu = sc.getAttributeNames();

while(enu.hasMoreElements()){

String text = enu.nextElement();

System.out.println(text+"====="+sc.getInitParameter(text));

}

}


1.4 HttpServlet


    与协议有关,在Http下运行


    注意:Servlet是单例的,可以会出现线程安全问题;尽量不要创建有状态的成员变量,如果非要创建,一定要保证只读


    


二  服务端响应


        HttpServletResponse


    2.1 与状态码相关


          void setStatus(int sc):向客户端返回响应的状态码


          void setStatus(int sc,String name):返回状态码和服务端提示信息


          void sendError(int sc):返回错误码


          void sendError(int sc,String name):返回错误状态码和提示信息


    状态码简介:1代表请求未完成;2代表成功;3表示中转;4表示客户端错误;5表示服务端内部错误


   2.2 与响应头相关 


          void setHeader(String name,String value):设置单值响应头


          void addHeader(String name,String value):添加多值响应头信息


   2.3 服务端响应内容相关


          PrintWriter getWriter():返回字符输出流,向客户端写数据


          ServletOutputStream getOutputStream():返回字节输出流


三 客服端请求


     


HttpServletRequest:封装了客户端的请求信息,如请求URL,请求协议,请求参数


 


String getMethod():获取请求方式


String getLocalAddr():获取本地路径


String getLocalName():获取本地名称


String getRemoteAddr():获取远程请求地址


 


String getRemoteUser():获取远程请求用户


String getRemoteHost():获取远程主机


int getRemotePort():获取远程端口号


int getLocalPort():获取本地端口号


 


String getProtocol():获取协议版本


String getScheme():获取协议


 


String getQueryString():获取请求参数


String getRequestURI():获取请求资源


StringBuffer getRequestURL():获取请求路径


 


URI和URL的区别?


URI:统一资源标识符,标志网络上的一个资源,如图片,视频音频等


URL:统一资源定位符,专制网址

--------------------- 



标签: 服务器搭建
分享:
评论:
你还没有登录,请先