java_第一年_JavaWeb(9)】的更多相关文章

EL :EL表达式主要用于获取数据.执行运算.获取对象.调用java方法: 获取数据 语法:"${标识符}" 会调用pageContext.findAttribute方法,从page.request.session.application四个域中获取对象,若找不到会返回"",是空字符串而不是null: 执行运算 语法:${运算表达式} 获取对象 <body> ${pageContext} <% pageContext.setAttribute(&q…
JSTL标签库——核心标签库 为了弥补html标签的不足,为了更加方便地在jsp页面中使用java逻辑代码,JSTL标签库因运而生,而其中的佼佼者,被恩宠最多的就是核心标签库了: 核心标签库从功能上可分为4类: 表达式控制标签:out标签.set标签.remove标签.catch标签 流程控制标签:if标签.choose标签.when标签.otherwise标签 循环标签:forEach标签.forTokens标签 URL操作标签:import标签.url标签.redirect标签.param标…
自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <title>输出客户端的IP</title> </head> <body> 你的IP地址是(使用…
Filter过滤器,Servlet API 中提供了一个Filter接口,用于实现用户在访问某个目标资源前对其进行拦截: 拦截原理:web服务器通过Filter接口调用doFilter方法,会传递一个filterChain对象进来,该对象也提供了doFilter方法,可根据是否调用该方法决定是否调用web服务器web资源的service方法: 通过Filter过滤器可达到以下目的: 调用目标资源之前,先执行一段代码: 是否让用户访问web资源 调用目标资源后,执行一段代码 Filter的开发除了…
SimpleTag标签 定义了五个方法:setJspContext.setJspBody.setParent和getParent以及最重要的doTag方法(完成了所有的业务逻辑): setJspContext方法:将JSP页面的pageContext对象传递给标签处理器对象 setJspBody方法:将代表标签体的JspFragment对象传递给标签处理器对象 setParent方法:将父标签处理器对象传递给当前标签处理器 getParent方法:获取当前标签的服标签处理器对象 doTag方法:…
JavaWeb的两种开发模式 JSP+JavaBean框架:JavaBean负责封装数据.提供方法,JSP负责处理用户请求和显示数据:只能开发较为简单的业务: JSP+JavaBean+Servlet:这是一种MVC开发模式:控制器为Servlet.视图采用JSP.模型采用JavaBean: 理解MVC模型: 需了解Model(M).View(V).Controller(C)概念: M(模型):数据模型.提供展示数据,包括数据 和行为: V(视图):负责模型展示,即客户直观看到的东西: C(控制…
JavaBean是一个遵循某种特定写法的Java类,有以下特点: 必需具有一个无参的构造函数 属性必需私有化 私有化的属性必需通过public类型的方法暴露给其它程序,其方法命名也有一定的规范 范例: package lzj.learn;public class Person{ private String name; private String age;//私有化的属性 public Person(){ }//无参的构造函数: public String getName(){ return…
前面说到,JSP在运行时会被编译成Servlet源代码,通过_jspServlet方法处理请求,此时该方法会传递和提供9个与web开发相关的对象进行使用,开发人员在JSP页面通过对这些变量即可引用这9大变量: 其中的request.response.session.application(servletContext).config在前面的博客已经或多或少有对其介绍,这篇重点说下pageContext.out.page这3对象: page对象:把当前的jsp页面当做一个对象使用,在开发中很少使用…
JSP执行过程 客户端发出请求访问JSP文件 JSP Container将要访问的JSP文件转译为Servlet的源代码(转译时期),并将其编译成.class文件(编译时期): 执行编译后的.class文件并将结果返回给客户端(请求时期) 在转译后的Servlet的源代码中(.java),存在_jspService的方法,该方法将JSP中的java代码原封不动地翻译出来,而其中的html则通过out.write("<html标签>\r\n")这样的方法翻译出来: JSP声明…
会话 会话:浏览器从打开一个进程访问服务器到该浏览器关闭,我们称之为一个会话: 在浏览器和服务器交互期间,会不可避免地产生一些数据,而为了为每个用户保存其对应的数据,可使用两种技术:Cookie和Session: Cookie 客户端技术,服务器会把用户的数据以cookie的形式写给每个客户端,当其再次访问时,就会携带相关的数据,这样使得服务器可以区分客户端处理数据: Cookie在java中是通过javax.servlet.http.Cookie类创建的:其提供的方法有: Cookie(Str…
HttpServletRequest对象 通过HttpServletRequest对象可获取客户端在访问服务器时,请求的所有信息 获取客户机的信息 getRequestURL:返回客户端发出请求时的完整URL getRequestURI:返回请求行中的部分资源名名称 getQueryString:返回请求中的参数部分 getRemoteAddr:返回请求中客户机的IP地址 ...... String requestURL= request.getRequestURL; String reques…
HttpServletResponse对象 向客户端发送数据的方法: 通过getOutputStream()方法得到OutputStream对象,再通过write发送 通过getWriter()方法得到PrintWriter对象,再通过write发送 发送响应头的方法: addDateHeader(java.lang.String name, long data) addHeader(java.lang.String name,String value) addIntHeader(java.la…
ServletConfig对象 可以通过web.xml文件中的<init-param>标签来初始化参数,这些参数会在创建servlet实例时将其封装到ServletConfig对象中,并在调用service中的init方法时将其传递给servlet: 设置参数: <init-param> <param-name>name</param-name> <param-value>lzj</param-value> <init-para…
HTTP协议 HTTP协议——超文本传输协议,用于定义web浏览器和web服务器之间数据交换的过程,遵守一定的通讯的格式: HTTP请求——包括请求行和多个信息头 请求行:包含请求方式(常用的GET.POST等).URL(可附加参数,在URL后接?,若多个数据可用&隔开).HTTP的版本号 信息头: Accept:表示浏览器所支持的数据类型 Accept-Charset:表示浏览器所支持的字符集 Accept-Language:表示浏览器的语言环境 Accept-Encoding:表示浏览器支持…
注:此系列javaweb的知识是我在一位“孤傲苍狼”的园友学习后记下来的笔记,并非原创^_^ Web开发的基本概念 web应用程序——提供浏览器访问的程序,也成为web应用,包含静态或动态资源:所谓的动态资源,是指web的页面效果会因事因人而变,会通过程序运行和连接数据库后取出不同的数据: 而这些web应用资源需通过web服务器管理后才能被外界访问,这个过程称为虚拟目录的映射: web服务器——是指一种被动的计算机程序,接受请求,处理请求并返回浏览器所请求的资源: 初学Web开发我用的是Tomc…
Commons-dbutils是一个开源的JDBC工具类库,对JDBC进行封装,简化编码的工作量,包含的API: org.apache.commons.dbutils.QueryRunner org.apache.commons.adutils.ResultSetHandler org.apache.commons.dbutils.DbUtils(工具类) QueryRunner类 提供方法: public Object query(Connection conn,String sql,Obje…
上篇说到,通过JDBC可实现java编程程序和mysql数据库进行连接并交互,而交互后所形成的结果集是通过ResultSet对象来操作的. 创建ResultSet对象: stmt = conn.createStatement(int RSType,int RSConcurrency); //或者stmt = conn.prepareStatement(String SQL,int RSType,int RSConcurrency); //或者stmt = conn.prepareCall(Str…
JDBC(Java Data Base Connectivity),用于实现java语言编程与数据库连接的API. 数据库驱动:应用程序并不能直接使用数据库,而需要通过相应的数据库驱动程序后再操作数据库:而JDBC就是实现应用程序去加载具体的驱动: 应用程序---JDBC--->驱动程序-->数据库 建立JDBC连接: 导入JDBC包: import java.sql.* 注册JDBC驱动程序并创建连接对象conn: Class.forName("com.mysql.jdbc.Dri…
DataBaseMetaData对象:由Connection.getDataBaseMetaData()方法获得,可以用来获取数据库的元数据,提供的方法有: getURL():返回一个String类,代表数据库的URL,例:jdbc:mysql://localhost:3306/dataname; getUserName:返回连接数据库管理系统的用户名,例:root@localhost: getDatabaseProductName():返回数据库的产品名,例:MYSQL getDatabase…
事务概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功: 开始事务:start transaction 提交事务:commit 回滚事务:rollback 事务的四大特性 原子性:是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态 隔离性:多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离 持久性:一个事务一旦被提…
注:该篇只是为了小白的我熟悉下JDBC的代码,练习篇 在mysql中建test测试库,并创建一张employees表,加入一些数据如下图: 通过JDBC连接对表中数据进行添加: package lzj_learn; import java.sql.*; import java.io.*; import java.util.*; public class test2 { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";…
事务 我们在通过JDBC连接数据库并开始交互时,默认情况下是自动提交的,有时由于为了保持业务流程的完整性.提高性能或是使用分布式事务,需要启动支持事务,此时的方法是调用Connection对象的setAutoCommit():传递布尔值false关闭默认自动提交: conn.setAutoCommit(false); 提交事务: conn.setAutoCommit(); 数据库回滚操作: conn.rollback(); 配合数据库的回滚,我们可以先设置保存点,通过Connection对象的方…
自定义标签,我的第一个自定义标签! 总共分两步 编写一个实现tag接口的java类,把jsp页面中的java代码移到这个类中,(标签处理器类) 编写标签库描述符(tld)文件,在tld文件中把标签处理器类描述成一个标签 一.案例, 输出客户端IP ViewIP.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&g…
一.概述 当使用httpClient调其他系统接口时,需要通过地址来发送post请求. 这时我们有不同的环境,那么就有两个问题. 1是地址不能写在代码中,而是要写在配置文件. 2是不同环境配置文件应该是不同的. 二.实现方式 . 1.webapp.xml 2.properties文件(不同环境配置文件不同. 需要改成一样的) 3.SignCheckServiceImpl文件. (注意这里提供get和set方法) 4.使用方式…
一:ndk环境搭建 1:开发环境 我使用的是android studio 2.3.3版本,搭建ndk开发环境比较简单,打开File----Settings----Appearance&Behavior----System  Settings----Android SDK,选择SDK Tools,将CMake,LLDB,NDK 前的复选框勾上,点击Apply,然后就是等待ndk下载完成. 安装成功后,右键项目----open  module setting,Android NDK location…
Java_基础之数组排序(从小到大) 1.冒泡排序: 冒泡排序可以写成两层循环. 每次循环将最大的数值交换到数组的最后一个. 每排序完一次,后面就少比较一次.所以二层循环的判断条件写成:arry.length-1-i 2.选择排序: 选择排序可以写成两层循环. 每次排序会选择出数组中最小的数,将其交换到数组的第一位. 平均时间复杂度都是:O(n^2) 冒泡排序稳定,选择排序不稳定. Java里面有一个自动排序的函数:Arrays.sort(); 手写排序,让我们更好的理解算法,这两个排序为最简单…
Java_框架面试题 欢迎来我Git上分享您的优秀建议 1.Spring框架分为哪七大模块,各模块的主要功能作用是什么? 七大模块,如下: 1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置. Spring Context: 构建于Core封装包基础上的 Context 封装包,提供了一种框架式的对象访问…
Java_集合面试题 0.链表,队列和栈的区别? 链表是一种存储结构,指得是存储时候除了要存储数据元素之外,还要用数据元素一起的另外空间存储数据元素的关系. 队列和栈都是线性表,属于逻辑结构范畴,都是访问点受到限制,并且限制在线性表端点的线性表. 栈被限定为在线性表中的同一个(唯一一个的)端点插入删除 队列被限定为在线性表的一端插入,另外一个端点删除 栈和队列也可以用链表来实现,分别称为链栈和链队列 1. ArrayList ArrayList是基于数组实现的,最大长度不会超过数组的长度2147…
Java_面试札记  为了不死,我愿献出生命 背景:记录下寄几和friend在2020年Java面试中遇到的problem. 1.MySQL索引结构? 基本上所有的索引都是B-Tree结构,还有一部分是HASH索引:B-Tree数据结构的简单说明: 1.B-Tree结构首先是分成很多节点,一个节点上面有很多的关键字(建立索引的字段),这些关键字在节点上是按照顺序排列的: 2.在一个节点上,每一个关键字的前面都有一个下个节点的指针,所以在一个节点上面,关键字的数量总是比节点的数量少一个: 3.每个…
java_环境搭建.变量的使用 Java语言开发环境搭建 1. Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是 Java程序的运行环境,是Java 最具吸引力的特性之一.我们编写的Java代码,都运行在 JVM 之上. 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性(“一次编写,处处运行”).该特性是由…