实习-查询交易监控信息学习

2 篇文章 0 订阅

一、JSP相关知识
1、
request对象

隐含对象request是javax.servlet.HttpSeverletRequest接口实现类的对象,代表从客户端用户发送过来的请求。

使用request对象可以获得客户端的信息以及用户提交的数据或参数,每次客户端请求都会产生一个request实例,请求结束后销毁request。

在这里插入图片描述
对于两个不同的.jsp文件之间传递参数使用 request.setArrtibutes(‘password’,1234);与 password = request.getArrtibutes(‘passwword’);
不同页面间传值使用request.setAttribute(positsion, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。

2、转发与重定向
转发使用:
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/welcome.jsp");
requestDispatcher.forward(request,response);

重定向使用:
response.sendRedirect("/welcome.jsp");
在这里插入图片描述

2、

二、XML相关知识
java使用Document接口解析XML

		// 初始化一个XML解析工厂
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		
        // 创建一个DocumentBuilder实例
        DocumentBuilder builder = factory.newDocumentBuilder();
		
        // 创建一个解析XML的Document实例
        Document doc = builder.parse(file);

方法:
loadXML() 方法用于加载字符串(文本),而 load() 用于加载文件。
xmlDoc.loadXML(txt);
xmlDoc.load(“books.xml”);

2、 XML链接JSP

部分有一个指向 "loadxmldoc.js" 的链接,并使用 loadXMLDoc() 函数加载 XML 文档 ("books.xml"):

3、获取节点信息
x 是一个节点对象。
(1)x的属性:
x.nodeName - x 的名称
x.nodeValue - x 的值
x.parentNode - x 的父节点
x.childNodes - x 的子节点
x.attributes - x 的属性节点
getNameItem(nodename) //返回指定节点
在这里插入图片描述

(2)x的方法
x.getElementsByTagName(name) - 获取带有指定标签名称的所有元素
x.appendChild(node) - 向 x 插入子节点
x.removeChild(node) - 从 x 删除子节点

node.nextSibling() //返回一个Boolean 值 ,如果node节点的下一个兄弟节点存在即为真

NodeType 判断节点的类型
Node.ELEMENT_NODE -----------元素节点
(3)节点属性
节点的关系被定义为节点的属性:
在这里插入图片描述
x.parentNode //获取节点的父节点
x.childNodes //返回子节点的列表。
x.firstChild //首个子节点
x.lastChild
x.nextSibling
x.previousSibling

示例:获取父节点的属性
x.parentNode.nodeName
输出:

使用自定义方法获取首个子节点
function get_firstChild(n)
{
y=n.firstChild;
while (y.nodeType!=1)
{
y=y.nextSibling;
}
return y;

(3)删除子节点
removeChild() 方法删除指定的节点。
当一个节点被删除时,其所有子节点也会被删除。

(4)获取节点属性值 - getAttribute()
getAttribute() 方法返回属性的值。
示例:
在这里插入图片描述
txt=xmlDoc.getElementsByTagName(“title”)[0].getAttribute(“lang”);
输出:en

(4)遍历

在这里插入图片描述

x=xmlDoc.getElementsByTagName(“title”);
x 成为一个 NodeList 对象。
//遍历
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("
");
}

NodeList可以使用的方法
NodeList.keys()
Returns an iterator, allowing code to go through all the keys of the key/value pairs contained in the collection. (In this case, the keys are numbers starting from 0.)

NodeList.values()
Returns an iterator allowing code to go through all values (nodes) of the key/value pairs contained in the collection.

(5)设置DOM解析器参数
setIgnoringElementContentWhitespace(true);
无视空白区域
在这里插入图片描述

在这里插入图片描述

三、Java相关知识
System.getProperty(“XXX”)方法用来读取JVM中的系统属性,那么java 虚拟机中的系统属性使用在运行java程序的时候java -D配置,有两种方式

四、JAVA连接SQL相关知识

(1)连接数据库bai步骤:
a. 用java程序与db建立一个连接(通道)
b。根据连接获取一个执行sql语句的对象
c。执行sql语句
d。关闭连接
public static void main(String[] args) {
try {
// 1加载驱动类
// forName() 返回与带有给定字符串名的类或接口相关联的 Class 对象
Class.forName(“org.gjt.mm.mysql.Driver”);
// a.建立连接通道
// DriverManager 管理一组 JDBC 驱动程序的基本服务。java.sql
// getConnection() 返回: 到 URL 的连接
String url = “jdbc:mysql://127.0.0.1:3306/a11”;
String user = “root”;
String password = “root”;
Connection conn = DriverManager.getConnection(url, user, password);
// 获取一个执行sql语句的对象
// Statement 用于执行静态 SQL 语句并返回它所生成结果的对象。
// createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。
Statement st;
st = conn.createStatement();
// c.执行sql语句
// 执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或不返回内容
st.executeUpdate(“insert into student(stuname,stuage,stusex,stubirth) values(‘张三’,10,‘m’,‘1988-08-09’)”);
// d.关闭连接
// 立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(“加载驱动类失败!”);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//或者关闭写在finally
createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。

(2)CreateStatement 和 PrepareStatement
创建了一个对象然后去通过对象调用executeQuery方法来执行sql语句。
PrepareStatement接口是Statement接口的子接口,他继承了Statement接口的所有功能。它主要是拿来解决我们使用Statement对象多次执行同一个SQL语句的效率问题的。ParperStatement接口的机制是在数据库支持预编译的情况下预先将SQL语句编译,当多次执行这条SQL语句时,可以直接执行编译好的SQL语句,这样就大大提高了程序的灵活性和执行效率。此外比Statement安全!

示例1:使用createStatement()
String sql = “select * from users where username= '”+username+"’ and userpwd=’"+userpwd+"’";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
示例2:使用PrepareStatement()
String sql = “select * from users where username=? and userpwd=?”;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, userpwd);
rs = pstmt.executeQuery();

executeQuery方法执行结果
java执行SQL语句后的输出结果可以保存在ResultSet 中
在这里插入图片描述

(3)
DatabaseMetaData和ResultSetMetaData就是两个常用的获取数据库元数据相关信息的接口

getColumnLabel获取的是field的SQL AS的值,而getColumnName获取的是sql语句中field的原始名字。

ResultSetMetaData rsmt=rs.getMetaData(); //得到结果集的结构信息,比如字段数、字段名等。
例:(1)使用rs.getMetaData().getTableName(1))就可以返回表名
(2)rs.getMetaData().getColumnCount()字段数
(3)rs.getMetaData().getColumnName(i));字段名

rs.getString()
在这里插入图片描述
4、resultSetType 参数设置
如果PreparedStatement对象初始化时resultSetType参数设置为TYPE_FORWARD_ONLY,在从ResultSet(结果集)中读取记录的时,对于访问过的记录就自动释放了内存。而设置为TYPE_SCROLL_INSENSITIVE或TYPE_SCROLL_SENSITIVE时为了保证能游标能向上移动到任意位置,已经访问过的所有都保留在内存中不能释放。所以大量数据加载的时候,就OOM了。

五、Java知识
request.getSession().setAttribute(“绑定名”,绑定值);
这段代码的意思就是:获取session对象,然后把要绑定对象/值绑定到session对象上
用户的一次会话共享一个session对象

request.getRemoteAddr()); //前一个是获得客户端的ip地址
request.getRemoteHost()); //后一个是获得客户端的主机名

Integer.parseInt(”num“); //将字符串num转换为整型

class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。

equalsIgnoreCase() 方法用于将字符串与指定的对象比较,不考虑大小写。

六、spring
使用面向接口编程的好处
在这里插入图片描述
例1:
1、定义一个方法接口
在这里插入图片描述
2、实现类:
在这里插入图片描述
3、配置xml
在这里插入图片描述
4、业务实现
在这里插入图片描述

与以往的面向实现相比,即业务逻辑想实现 sayHello()方法的功能需要
在这里插入图片描述
面向接口编程由于有个第三方中转商,将 实现类HelloImpl 命名为hello,通过hello在业务逻辑创建实现对象 helloApi
在这里插入图片描述
比如这个时候如果我们想使用类 HelloOther实现 helloApi ,只需要将配置文件更改为
在这里插入图片描述
这样不需要修改业务层的代码,业务代码不变即可,仍可以写成原来的样子,是不是很方便,这个就是常说的sping中的解耦。
在这里插入图片描述

(2)IO流
getResourceAsStream读取的文件路径只局限与工程的源文件夹中,包括在工程src根目录下,以及类包里面任何位置,但是如果配置文件路径是在除了源文件夹之外的其他文件夹中时,该方法是用不了的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值