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进行解析(自己编写)
相关推荐
在Java网络编程中,我们还需要了解异常处理、套接字选项、多路复用技术如Java NIO(非阻塞I/O)以及SSL/TLS安全通信等高级主题。此外,对于B/S架构,我们通常使用Servlet、JSP和相关框架(如Spring MVC)来开发Web...
Java网络编程是编程领域中的重要组成部分,它允许程序在不同的设备之间交换信息。本文将深入讲解Java中的网络编程基础知识,帮助初学者理解并掌握这一技术。 首先,理解网络编程的本质至关重要。网络编程涉及两个或...
通过这个实验,你可以掌握Java网络编程的基本技巧,理解I/O操作和多线程在并发通信中的作用,并能设计和实现一个简单的网络应用。这对于进一步学习更复杂的网络服务如Web服务器、分布式系统或云计算平台等都是非常有...
### Java网络编程精讲知识点概览 #### 一、Java网络编程基础 1. **网络编程概念**: - 网络编程是指利用计算机网络技术进行数据交换和资源共享的一种编程方式。 - Java提供了强大的网络编程支持,使得开发者能够...
在本项目中,"Java网络编程 五子棋 课程设计"是一个综合性的学习任务,旨在让学生通过实际操作深入理解网络编程和游戏开发的基本概念。这个项目涵盖了多个关键知识点,包括Java编程语言、网络通信协议、多线程、游戏...
总结一下,本教程主要介绍了Java网络编程的基础知识,包括使用`ServerSocket`创建服务器,`Socket`建立客户端连接,以及如何通过输入输出流进行数据交换。同时,也提到了使用Swing创建简单GUI的方法。继续深入实践,...
总结来说,Java网络编程包括了对UDP和TCP协议的支持,通过Socket API可以实现客户端和服务器之间的通信。无论是简单聊天软件还是复杂的分布式系统,理解并熟练掌握这些基础知识都是至关重要的。
### Java网络编程核心技术知识点概述 #### 一、网络编程概览 在Java软件设计与开发过程中,通信架构是一项不可或缺的核心技术。特别是在不同系统或进程之间的数据交互,以及高并发环境下的通信场景中,网络通信技术...
总结,Java网络编程是开发者必备的技能之一,涵盖了TCP/IP原理、Socket编程、NIO以及网络协议的使用。通过学习和实践,我们可以构建出高效、稳定的网络应用程序。网络编程的学习不仅仅是理论知识的积累,更是动手...
总结来说,Java网络编程中的端口扫描器通过Socket类实现了对目标IP的端口探测,结合多线程技术提高了扫描效率。然而,使用此类工具时,我们必须意识到可能涉及的法律和道德问题,合理合法地使用这些技术。
根据提供的文件信息,“Java网络高级编程4.pdf”主要聚焦于Java网络编程的高级技术与实践。虽然提供的部分内容并未包含实际的技术细节,但从标题、描述以及标签来看,我们可以合理推测这本书涵盖了Java在网络编程...
总结起来,Java网络编程涵盖了从基本的TCP/UDP通信到复杂的HTTP交互、多线程优化和安全数据传输等多个方面。通过熟练掌握这些概念和API,开发者可以构建高效、可靠的网络应用程序。在实际项目中,应根据具体需求选择...
Java网络编程是开发分布式应用程序的关键技术,它允许不同的设备通过互联网进行通信。在这个入门实例总结中,我们将深入探讨Java中的两种主要通信协议:UDP(用户数据报协议)和TCP(传输控制协议),并借助源码示例...
基于Socket的Java网络编程不仅适用于简单的客户端/服务端通信场景,还可以扩展到更复杂的分布式系统中。对于希望深入学习Java网络编程的开发者来说,理解Socket的基本原理和使用方法是非常重要的。在未来的发展中,...
它展示了如何使用Socket和Swing/JavaFX来创建一个基本的多用户聊天应用,这对于学习Java网络编程和GUI设计是非常有价值的实践。通过对服务器端和客户端逻辑的理解,开发者可以进一步扩展此应用,比如添加用户认证、...
在"Java网络编程实例1"这个压缩包中,可能包含了实际的Java代码示例,包括简单的客户端-服务器通信,多线程服务器,使用URL和URLConnection下载文件,以及可能的NIO实现。这些实例可以帮助读者更直观地理解上述理论...
一、Java网络编程基础 1. Socket编程:Java中的Socket类和ServerSocket类是TCP编程的基础。Socket用于建立客户端和服务器之间的连接,而ServerSocket则监听特定端口,等待客户端的连接请求。通过这两个类,开发者...
Java Socket网络编程是Java开发中一个重要的组成部分,它允许应用程序通过网络进行通信,实现客户端与服务器之间的数据交换。本教程将深入探讨Java Socket编程的基本概念、原理和实践应用。 一、Socket基本概念 ...
Java Socket 编程是 Java 网络编程的基础,java 中的 Socket 编程主要是基于 TCP/IP 协议的网络编程。下面将总结 Java Socket 编程的主要知识点。 一、网络编程基本概念 在 Java 网络编程中,两个主要的问题是如何...