XMLJspServlet基础学习笔记

Posted 工地的搬砖少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XMLJspServlet基础学习笔记相关的知识,希望对你有一定的参考价值。

XML、Jsp、Servlet基础学习笔记

XML、Jsp、Servlet基础学习笔记1.XML

1.1XML的基本语法
1.2XML约束
1.3XML解析方式

2.Jsp

2.1jsp的简介与使用
2.2request,session,application,pageContext
2.3请求转发与重定向

3.Servlet

3.1Servlet的创建与使用
3.2Servlet的配置

Web.xml的配置注解配置


1.XML

1.1XML的基本语法

XML是一种表示数据的格式,即可扩展标记语言。按照xml规则编写的文本文件称为xml文件。XML与html的语法类似,但在很多地方上有所不同。

  • 有开始标记必须有结束标记(标记是成套的),标记可以包含标记(可以嵌套,嵌套成对嵌套。

  • 大小写敏感

    如:<Message></Message> <message></message>
  • 标记可以是单标记,但必须自己闭合 <xxxx/>

  • 必须有根标记,也叫做根元素。(根元素是其他元素的父元素)

  • xml文档声明必须放在第一行,否则会报错

    <?xml version="1.0" encoding="UTF-8"?>
  • 不建议以XML xml Xml 等跟xml相关名字

  • xml中特殊符号的表示查询相关文档:http://www.w3school.com.cn/xml/xml_syntax.asp

  • 注释使用的方法与HTML相同

    <!-- 注释内容 -->
<!-- 给命名空间起别名 xmlns:w3="http://www.w3school.com.cn" -->
<!-- 当没有起名时会引入默认的命名 xmlns="http://www.w3school.com.cn" -->

1.2XML约束

定义了约束之后,可以防止我们写错文档。比如某个配置文件,按照相同的约束来书写,更容易让别人阅读和别的程序读取。

平时编写xml文件的时候,是没有固定规则的,标记名,属性名,属性值我们可以按照我们的需求随意来开发。

但是当我们使用别人的框架的时候,一般需要提供一个配置文档,来配置我们使用这个框架的时候的一些属性。这个时候,这个配置文档就需要按照框架的要求来编写。框架的要求就是对xml文档的约束。我们可以通过DTD和Schema文档来编写对文档的约束。

DTD约束XML文档

三种引入方法:1,内部引入;2,外部引入(本地);3,外部引入(网络) 具体参考:http://www.w3school.com.cn/dtd/dtd_intro.asp

示例:Struts框架的配置文档的首行

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

schema约束XML文档

schema约束可用来替代DTD约束,是一种比较厉害的约束。它的约束文档本身也是一个xml文档,后缀为xsd。它的语法更加容易阅读,更加友好,功能更加强大,类型更加完善,里面有命名空间。

同样,我们也不需要写schema约束文档,我们只需要直接使用框架提供给我们的约束文档即可。

schema文档的使用:http://www.w3school.com.cn/schema/schema_howto.asp

1.3XML解析方式

DOM文档对象模型(树形结构)DOM方式解析XML,就是把xml文档加载到内存形成树形结构,可以进行增删改的操作。XML和HTML中的DOM是相似的,都是用来解析标签的,解析成一个树,并得到一个document对象。

我们可以使用dom4j来进行dom方式的解析。dom4j是一个开源的xml解析软件包。

  • 解析的时候需要做的事情

  1. 解析根元素

  2. 解析有哪些子元素

  3. 解析一个元素又哪些属性

  4. 得到元素的文本内容

  5. 修改、添加、删除某个元素节点

  6. 修改、添加、删除某个属性

public class ParseXML {

public static void main(String[] args) throws DocumentException {
       SAXReader reader = new SAXReader();
       Document document = reader.read("src/NewFile.xml");
Element root = document.getRootElement();
// System.out.println(root.getName());

Iterator<Element> it =  root.elementIterator();

while(it.hasNext()) {
Element ele = it.next();
if(ele.getName().equals("good")) {
Element name = ele.element("name");
System.out.println(name.getText());
}

// System.out.println(ele.getName());
// Iterator<Attribute> attributes = ele.attributeIterator();
// while(attributes.hasNext()) {
// Attribute ab = attributes.next();
// System.out.println(ab.getName()+":"+ab.getValue());
// }
}

//xml:读取xml文档的重要两个方法运用 Element Attribute
Element ele = null;
// ele.elmentIterator //遍历方法
// ele.element(); //获取某个指定属性名的值
}
}
  • 解析XML的Java程序

2.Jsp

2.1jsp的简介与使用

jsp是由java和html代码组成的,用于开发动态页面。由于java和html的混合使用,导致可读性和可维护性很低,所以在学习的时候仅到了解的层面。

jsp头部导入包或java类

<%@page import="com.sikiedu.model.User"%>

jsp定义表达式,可在里面定义成员变量

<%! int count=0;%>

jsp的内容输出表达式,在词可输出变量或方法内容,一个jsp对应一个java类,运行的时候,一个jsp会创建一个对应的java对象

<%=count%>

jsp的注释,在java代码中依然可以使用java支持的注释

<%--  --%>

jsp的输出方法与与java不同,System.out.println();是输出在控制台上。

<% out.println(count);%> //输出在页面上

2.2request、session、application、pageContext

作用域:page<request<session<application

request

request请求返回数据消息,示例:登录返回校验信息

request.setAttribute("message", "<font color='red'>登陆失败,用户名或密码错误</font>");
request.getRequestDispatcher("login.jsp").forward(request, response);

request请求接收信息

Object msg = request.getAttribute("message");
if(msg!=null) out.print(msg);

session

开始session会话,并传递对象

session.setAttribute("user", user);

接收session会话的传递对象

Object o = session.getAttribute("user");
if(o!=null){
User user = (User)o;
out.print("当前登录用户:"+user.getUsername()+"<br />");
}

application

application用于保存整个WebApplication的生命周期内都可以访问的数据,任何客户端,任何浏览器都可以访问。网站启动起来,创建一个applition,当网站关闭后,application被销毁。一个web应用只有一个application对象。示例:显示网站登录人数

int number = 0;
if(application.getAttribute("userNumber")!=null){
number = (Integer)application.getAttribute("userNumber");
}
number++;
application.setAttribute("userNumber", number);
Object o2 = application.getAttribute("userNumber");
if(o2!=null){
out.println("当前登录用户:"+o2+"个!<br />");}

pageContext

jsp的内置对象之一page的作用域只在当前页面有效,如果jsp页面发生了请求转发的话,当前页面的page对象就不见了。page就是this当前对象。

1,setAttribute(PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE)
2,getOut() getRequest() getResponse() getServletContext() getSession()

2.3请求转发与重定向

请求转发,是将消息传递给下一个指定的页面再返回给客务端

request.getRequestDispatcher("login.jsp").forward(request, response);

重定向,当消息传递到服务端时,会发起新的request到客户端,因此原本的消息不能够传递到页面上。

response.sendRedirect("login.jsp");

3.Servlet

3.1Servlet的创建与使用

如果一个jsp页面单纯的只是处理逻辑,不做页面显示用的话,这个时候可以让这个请求交给Servlet来处理。

Servlet是一个java类,继承自javax.servlet.http.HttpServlet。一般由doGet和doPost方法。

Seruvlet的生命周期方法,第一次被请求的时候会调用init,每一次被请求会调用service方法,终止调用destroy。

3.2Servlet的配置

Servlet由两种配置方法:1.XML配置文件;2.注解的方法@WebServlet

Web.xml的配置

<servlet>
<servlet-name>LoginServlet</servlet-name>//类名
<servlet-class>com.sikiedu.servlet.LoginServlet</servlet-class>//类所在路径
</servlet>
//解析
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/register_do</url-pattern>访问地址
</servlet-mapping>

注解配置

在Servlet类前进行注解,@WebServlet("/register_do")。


以上是关于XMLJspServlet基础学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

C#学习笔记——需要注意的基础知识

学习笔记:python3,代码片段(2017)

unity shader学习笔记 shader基础结构以及Properties面板

python基础学习笔记(十三)

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

[vscode]--HTML代码片段(基础版,reactvuejquery)