作为程序员在JavaWeb中需掌握JDBC/DAO及单例模式和JSP 即可

Java web

一、JDBC 提供者:sun公司

1.JDBC是实现Java数据库连接技术,提供连接数据库的能力
2.JDBC 的工作原理
JDBC API ,供程序员调用的接口与类,集成在java.sql和javax.sql		包中,如:DriverManager类、Connection接口、	Statement接		口、ResultSet接口。
3.如何配置JDBC ???
右击javaProject-->build Path-->configure build path最后一个-->Libraries-->add External JSRs-->选择jar包(mysql-connector)
4.JDBC访问数据库步骤 5步查找数据库的信息

加载不同数据库厂商提供的驱动DriverManager

(1)加载驱动

Class.forName(“com.mysql.jdbc.Driver”);

(2)获得Connection连接

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t110", "root", "密码");

Mysql 8以上的url: 后面加 ,我们现在用的mysql是5.7版本

"jdbc:mysql://localhost:3306/t110?serverTimezone=GMT%2B8

(3)通过Statement/PreparedStatement创建对象,传递SQL语句

Statement stmt = conn.createStatement();

(4)执行查询的方法,获得ResultSet结果集合,分析结果集合

ResultSet rs = stmt.executeQuery("select * from student");
while(rs.next()){//如果有下一行未读取的记录的话,就将光标指向该行
			System.out.println("学号:"+rs.getString("stuno"));
			System.out.println("姓名:"+rs.getString("stuname"));
	System.out.println("年龄:"+rs.getInt("stuage"));
	System.out.println("性别:"+(rs.getBoolean("stusex")?"男":"女"));
	System.out.println("生日:"+rs.getTimestamp("birthday"));
	System.out.println("===========================");
}

(5)释放资源

rs,stmt,conn.close();
5.JDBC 给数据库添加数据 步骤 5步

(1)准备工作

int row = -1;	//代表行数
//写对应数据库表中的字段类型以及要添加的数据,例如
		String id = "10011019";
		String name = "gz";
		int age = 23;
		int sex = 1;
		String birthday = "1997-02-18 08:15:15";
//写添加的sql语句:例如:
String sql = "insert into student 		values('"+id+"','"+name+"',"+age+","+sex+",'"+birthday+"	')";

(2)加载驱动

Class.forName(“com.mysql.jdbc.Driver”);

(3)获得Connection连接

Connection conn = DriverManager.getConnection("jdbc:mysql:///t110", "root", "密码");

(4)通过Statement创建对象,传递SQL语句

Statement stmt = conn.createStatement();

(5)执行添加的方法executeUpdate,返回被改变的int类型的行数

row = stmt.executeUpdate(sql);//增删改 都用这个方法

在sql语句中的第一个“?” 的位置填充东西 PreparedStatement

Pstmt.setString(1,东西);

在这里插入图片描述

二、DAO 提取接口

DAO开发模式,使用面向对象的方式对数据库的数据进行处理
**接口:**定义对该表进行的所有操作
**实现类:**根据存储介质不相同,实现接口中的方法

实现步骤:

1、新建entity包,创建和数据库相对应的实体类
(表名和库名一致,属性名和字段名一致)提供构造,get set方法
2、新建dao包,创建接口,文件名后加dao 提出公共的BaseDao
(1)查询全部 List findALL();
(2)根据主键查询 Student findById(Student id);
(3)添加数据 int insertStudent(Student student);
(4)修改数据 int updateStudent(Student student);
(5)删除数据 int deleteStudent(String id);
3、创建接口的实现类 文件名后加Impl
4、创建测试类

三、配置文件 单例模式

单例模式:
1、把构造方法私有
2、程序提供给别人唯一对象 static

单例模式的实现方式有两种:
==1、懒汉方式 ==

线程不安全 加 synchronized 同步锁 就安全

1、配置文件-属性文件 .properties (键 值) 建在src下面
在 Source中,输入关于数据库的键值对
在这里插入图片描述
Properties 专门读取.properties文件的类
2、建一个ConfigManager.java类中:创建三个方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

==2、饿汉方式 ==

在这里插入图片描述
随后:把BaseDao改成以下 取键即可
在这里插入图片描述

四、JSP 概述(Java Server Pages)

CS (Client Server) 软件需要安装的本地的 局域网
BS (Broswer Server) 浏览器服务器 广域网
URL 统一资源定位符 http://localhost:8080/项目资源地址
在这里插入图片描述
JSP 是运行在服务器端的Java页面,使用HTML嵌套Java代码实现

一、B/S 架构工作原理
B/S架构采用请求/响应模式进行交互		(request/response)
二、常用的Web服务器

1.Microsoft : IIS
2.Apache:Tomcat
3.Oracle:WebLogic 商用 收费
4.IBM:WebSphere 商用 收费
5.Nginx 并发能力强

三、Tomcat 服务器 http://tomcat.apache.org/download-70.cgi

1.Apache Jakarta的开源项目
2.轻量级应用服务器
3.开源、稳定、资源占用小
4./bin 用户启动和停止Tomcat的
5./conf 存放服务器的各种配置文件
6./webapps默认存放此目录下
7./work Tomcat把由JSP生成的Servlet放于此目录下
在这里插入图片描述

四、操作Tomcat 的注意事项

1.Bin目录下中的Startup.bat 启动后,不能关闭,最小化
2.启动时,窗口一闪而过:是因为没有配置JAVA_HOME
3.端口号修改在 conf/server.xml 文件中

部署Web应用程序 到Tomcat的webapps目录
修改server.xml     <Context path=””   docBase=”” />
Alt+/   导包
五、在Dynamic Web项目中如何显示右击new里边的东西???

Window–>Customize Perspective–>最后一个Shortcuts找到java勾上

六、创建Web项目 右击–>Dynamic web Project

在这里插入图片描述
在这里插入图片描述

七、修改JSP生成文件的编码格式:

1.Window–>JSP Files–>Encoding改成UTF-8

八、 JSP的输出和注释

1.输出
(1)**Page 指令:**通过属性定义了JSP的特性,实现与JSP容器的通信

<%@ page language=”java”contentType=”” pageEncoding=”utf-8”%>

Language: 指定JSP页面使用的脚本语言
contentType: 用来指定JSP页面所采用的字符编码方式
pageEncoding: 用来指定JSP页面所采用的字符编码方式
import: 通过该属性来引用脚本语言中使用到的类文件

(2)**Out对象:**是JSP的内置对象
无需实例化即可使用实现数据的输出显示

2.JSP中的注释:

Ctrl+Shift+/   注释					选中的前提
Ctrl+Shift+\	取消注释	
Html注释:<!--  -->					页面中可以看到
JSP注释:<%--  --%>					页面中看不到
JSP脚本中注释:<%//   %>、<%/*   */%>	页面中看不到
九、 JSP声明全局变量和方法

1.变量
(1)<%! int j =9 %> 声明全局变量
(2)<% int i =9 %> 声明局部变量
(3)<%= i %> 调用变量
2.方法 在<%! %> 里声明方法

十、 Web 程序调试和排错
1.常见错误:

(1)404错误:找不到访问的页面或资源
① 运行时,URL输入错误
② 将页面放在WEB-INF 下
③ 外部启动Tomcat ,未部署项目
(2)500 错误:JSP页面代码有误
(3)页面无法显示: tomcot 没启动

十一、 获取表单提交的数据

1.请求对象 request
(1)Request.getParameter(“String name”); 获得某一个参数
(2)Request.getParameterValues(“元素名”); 获取同名的多个参数 返回数组

十二、Get 与 post 区别

在这里插入图片描述

十三、处理中文乱码

1.表单post方式提交,中文乱码处理
(1)Request.setCharacherEncoding(“utf-8”);请求
(2)Response.setCharacterEncoding(“utf-8);响应 不加也行
2.表单get方式提交,中文乱码处理 (打散再重组 治标)
(1)name = new String(name.getBytes(“ISO-8859-1”),”utf-8”);
(2)找到comcat–>conf–>server.xml文件里–>connector标签,加个属性:URIEncoding-”utf-8” 重启服务器就好

十四、在请求中存取属性

1.在请求中保存属性
(1)setAttribute(String,Object);
例如:request.setAttribute(“mess”,”注册失败”);
2.在请求中获得属性
(1)GetAttribute(String name);
注意:
1.在使用属性值的时候要做非空判断,否则会出现空指针异常
2.它的返回值类型是object类型,需要做数据类型的转换

十五、跳转的两种方式:

1.转发 RequestDispatcher对象 forward()方法 地址栏不变

(1)request.getRequestDispatcher(“url”).forward(request,response);

通过请求获得一个分发器,跳转到url文件名.jsp,同时携带请求响应
(2)<jsp:forward page=”url”>

2.重定向 :response.sendRedirect(“url”); 地址栏变
(1)将用户请求重新定位到一个新的URL

request.getContextPath()	+/a.jsp			获得上下文路径../

遇到乱码的情况怎么办???

URLEncoder.encode(String,String);		编码
URLDecoder.encode(String,String);		解码

例如:
在这里插入图片描述
在这里插入图片描述

十六、JSP内置对象
1.JSP内置对象是Web 容器创建的一组对象
2.常用的JSP内置对象

(1)Out 输出对象 out.println();
(2)Response 响应对象

response.sendRedirect(“../地址路径”)

(3)Request 请求对象 方法:

① String getParameter(String name) 

根据表单组件名称获取提交数据

②String[] getParameterValues(String name)

获取表单组件对应多个值时的请求数据

③void setCharachterencoding(String charset)

指定每个请求的编码

④RequestDispatcher getRequestDispatcher(String path)

返回一个RequestDispatcher对象,该对象的forward() 方法用于转发请求

(4)Session会话对象 作用域大session.GetAttribute(“名”);

① 一个会话就是浏览器和服务器之间的一次通话,会话可以在多次请求中保存和使用数据。
② Session 是单用户,多页面可共享的,session保存在服务器端。
③ session.getId() 服务器端使用的记录客户端状态的机制,每一个session有一个唯一的sessionid 。

④ 会话的清除和过期

1)程序主动清除 session数据
a.设置会话失效 session.invalidate(“”); 注销
b.移除会话的一个属性 session.removeAttribute(“名”);
2)服务器主动清除长时间没再次发出请求的session
a.方法一:setMaxInactiveInterval(int 秒);
b.方法二:修改web配置文件

(5)Cookie 跟踪用户的整个会话 小饼干 实现自动添加用户名

① cookie在客户端记录信息 session是基于cookie 的
② Cookie中不要用中文,如要存 需要处理两点:

URLEncoder.encode(name,”-8”);     
URLDecoder.decoder.decode(name,”utf-8”); 

③ cookie以文件方式保存数据 添加数据 addCookie(cookie)
④ 获取数据 public Cookie[] getCookies();
⑤ 设置有效期 public void setMaxAge(int expiry);
⑥ 设置cookie路径 cookie.setPath(“/”); 对于此项目都可见

例如:
在这里插入图片描述
(6)Application 应用程序对象

在页面中实现计数器,页面访问的次数,实现如下:
在这里插入图片描述
注:==request、session、application 三个对象对比 ==

**相同点:**都可以存储属性
不同点:
Request 中存储的数据仅在一个请求中可用
Session 中存储的数据在一个会话的有效期内可用
Application 中存储的数据在整个Web项目中可用

(7)pageContext 页面上下文对象
(8)page 页面对象 this
(9)config 配置对象
(10)exception 异常对象

格式化输出时间
Date date = new Date();
SimpleDateFormat f = new SDF(“yyyy-MM-dd”);
String time = f.format(date);

在Eclipse里生成网页:

http://localhost:8080/(项目名)U2JSP/(文件名)NewFile.jsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值