您的位置:首页 > 理论基础 > 计算机网络

总结简单Java网络编程

2017-01-16 15:40 357 查看

Servlet:

 

Servlet类必须继承httpServlet。

 

用html协议访问Servlet:

1.在Servlet里面设置好response.setContentType(CONTENT_TYPE);

CONTENT_TYPE = text/html;charset = utf-8”;

2.在WEB-INF里面设置好xml的Servlet-name以及Servlet-mapping(似乎在tomcat8里面能够使用注解来代替xml)

 

使用post访问:

需要写一个包含post请求的form网页

-->  <form method =”post” action = “/webpage/testServletPost”(为相对路径)>

<input type=”submit” name=”提交” value=”submit”></input>

</form>

 

Request:

包含对Servlet请求的所有信息,主要用于接受客户端通过HTTP协议传给服务器的数据:包括请求的来源、cookies和请求相关的参数等

通过request可以查看请求参数的配置情况-->调用getParameter

 

request对象方法分为两大类:

1.request特性信息——只能读取,不能修改:客户端信息、HTML头信息、服务器端信息

2.request携带信息——可以进行写入和读出:

客户端上传信息(主要是From表单的信息和URL的query传递的信息)

请求的属性(由开发者自定的用于将需要的信息传递给其他的Servlet和JSP)

持久对象信息(客户端持久对象Cookies和服务器端Session)

 

request.getParameter(value)能够得到name为value的值的值有多个值的话就应该使用getParameterValues(String name),返回一个String的数组

 

当不知道上传信息变量名的时候用getParameterNames,其返回值的是一个Enumeration

 

Response:定义头文件信息,用于定义HTML的头/状态信息,包括字符编码格式、cookies/页面跳转的方法

 

JSP(Java Server Pages):

不算是一种特殊的技术,更像是一种特殊的书写形式,目的是为了简化Servlet的书写,其最后终究还是自动编译成Servlet进行运行,所以其运行效率明显高于PHP和ASP。

 

request可以携带完整的对象,将其传递到另一个JSP或Servlet中-->使用get/setAttribute即可。

 

介绍一种jsp语法推荐的获取参数的方式:

通过useBean方式获取:

<jsp:useBean id=”username” scope=”Session” class=”java.lang.String”></jsp:useBean>

id是request中对象的调用名,同时也是整个页面中调用这个对象的调用名。

scope说明调用的形式,共4种(他们的作用范围?)。

class说明我们希望从request中取出的对象的类型。

 

Servlet:out.println(“<title></title>”)

JSP:

<%@page contentType=”text/html;charset=utf-8”%>

<%=”Hello World!”%> == <%out.println(“Hello World!”)%>

 

MVC的三层设计模式:JSP-Servlet-Bean

在Serlvet中不要包含任何的逻辑处理程序,也不要将页面在Serlvet中直接输出,因此处理相关数据用其他类,输出采用JSP。

 

Send只能传简单的信息:response.sendRedirect(“showdirect.jsp?username = odin)<自动通过URL进行跳转,和HTML的跳转功能是一样的>

Despatch(常用,能够传递较为复杂的信息):

1.必须使用完全的相对地址,而不是从Servlet的目录开始写,String servletURL是跳转目标的根路径。

2.跳转命令要包含Servlet的request和respose。

代码:

RequestDespatcher rd = getServletContext().getRequestDespatcher(“/showattribute.jsp”);

rd.forward(request,response);

 

持久对象

Session:放在服务器,储存的是对象

String userName = “demaxiya”;

//生成新的Session对象

HttpSession userinfo = request.getSession(true);

userInfo.setAttribute(“userName”,userName);

response.sendRedirect(“showattribute.jsp”);

使用java的方式获取:

HttpSession userInfo = request.getAttribute(false);userinfo.getAttribute(“username”);

 

Cookie: 放在客户端,只能存放String,存在时间由程序定义,而不是服务器定义。

相比于Session的优点:

1.存在时间长,关闭浏览器甚至电脑后依然有效,而Session当关闭浏览器后就失效了。

2.Cookie不占用浏览器的资源,不会给服务器造成压力。

3.Cookie能够被JavaScript等页面语言所使用,而Session不行。

 

Cookie的生成:

1.new Cookis(name,value)

2.response.setCookie(cookie)

Cookie 的获取:request.getCookies()  <返回一个Cookie的数组>

 

综合运用

JSP中导入另一个JSP

<%@ include file=”data.jsp”%>

文件上传

上传文件使用的是标准的HTML方式:

<form action=”servletfileup” enctype=”multipart/form-data” method=”POST”>

默认使用表单传输,通过I/O解析的方法(能够被request自动解析“application/www-form-urlencoded”)

<input type=”file” name=”fileStream” /> 能够上传文件的标记

<input type=”submit” />提交按钮

 

文件的服务器端的获取:request.getInputStream-->new InputStreamReader-->new BufferReader-->LineNumberReader-->String

 

编写一个获取Form表单的通用方法

要求:

1.判断form上传信息的形式

2.如果可以用标准的request自动解析,则采用request自动解析,将Form上传的名值对放入一个标准的容器中

3.如果form信息包含了上传文件,则将非文件的信息和自动解析一样放入一个标准的数据容器中,将上传文件放入指定目录中(如果没有指定目录则放入默认目录中),并且将上传文件名作为该项目的值,项目名作为调用名一起放入标准容器中。

 

XML解析

 

通过Dom4j的SAX进行解析(自己编写)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: