《java web》_《Java web应用》板书

20200303

一、基础知识介绍

Web应用程序:就是在浏览器里运行的程序,网站也可认为是一个小型web应用程序。

软件架构:

B/S(Browser/Server)模式:浏览器/服务器模式,web应用程序就属于B/S模式。

C/S(Client/Server)模式:客户机/服务器模式,比如:QQ。

二、搭建Java web的开发环境

1、安装JDK,JDK就是JAVA的开发工具包。

2、安装Tomcat,web服务器软件,主要用于网站的发布。PHP的常用的web服务器软件是Apache,微软的web服务器软件是IIS。

3、安装eclipse,集成开发环境(IDE)。

4、在eclipse中新建web项目

操作:"File"->"New"->"Dynamic web project"

项目的结构介绍:

Java Resource:放java程序的目录,其中src里存放自己写的java程序

build:主要放java程序编译后class文件。

WebContent:站点根目录,主要存放前端的资源和jsp文件。

5、新建一个jsp页面

jsp页面的组成:html代码和java程序片组成。

在jsp页面嵌入java代码的三种方式:

Java程序片:

Java表达式:

Java成员变量:

java成员变量的生命周期为Tomcat的运行周期,就像Java类的静态变量一样,可被多个该类的对象所共享。

三、jsp页面常见的内置对象

out,request,response,cookie,session,application

所谓内置对象就是直接在页面中使用,不需要通过类来创建的对象。

1、out

out对象主要向浏览器输出内容,它的主要方法是print(),println(),write()

2、request

请求对象,主要用来封装客户端的请求,包括客户端的操作系统、浏览器、URL和发送数据。

常用的方法:

request.setCharacterEncoding("UTF-8")  //设置请求对象的字符编码,防止中文乱码

request.getParameter("参数名")  //获得请求里的某个参数的值

request.getParameterValues("参数名")  //获得某个参数的多个值,返回的是一个字符串数组。

前端知识补充:

表单的中常用的控件

表单:

请求方式:

GET:发送的数据是附在URL后面,在地址栏输入地址或点链接都是GET请求。

POST:通常表单提交的请求最好是POST

文本框:

id:给浏览器用的,name:是给服务器的

密码框:

提交按钮:

重置按纽:

单选按纽:

复选框:

下拉列表:

值1

...

3、response

响应对象,是由服务器对用户请求作出的响应。

常用方法:

response.sendRedirect("地址")  //重定向到某个页面

例:response.redirect("login.jsp");  //跳转到login.jsp页面

response.setHeader("页面文件头的属性名","页面文件头的属性值")

例:response.setHeader("refresh","3;url=loginSuccess.jsp");  //3秒后跳转login.jsp页面

response.setContentType("响应内容打开的应用程序类型");

例:response.setContentType("application/msword");  //用本地的word打开响应内容

4、Session

会话,是指客户端与服务器的一次会话,它的生命周期从用户访问网站开始直到离开网站。服务器为每一个访问用户创建session对象,每个用户的session对象互不相同。

常用方法:

session.setAttribute("键名",键值)  //键值的类型是Object类型

session.getAttribute("键名")  //获得session对象里面指定键名的键值,该方法返回类型为Object

session.removeAttribute("键名")  ///从session对象里移除指定的元素

session.invalidate()  //让session失效,一般在用户退出的时候使用

session的生存期限取决于下面几个因素:

1)用户是否关闭浏览器  2)是否调用了invalidate()方法  3)是否达到最长的"发呆"时间

5、application

应用程序对象,web服务器启动后就会产生application对象,直到web服务器关闭,在此期间application对象可被所有的用户所共享。

常用方法:

application.setAttribute("键名",键值)

application.getAttribute("键名")

application.removeAttribute("键名")

application和session的区别:

session跨页面共享数据,但每个用户的session数据各不相同,属于用户级的。

application跨页面、跨用户共享数据,属于应用程序级的。

6、Cookie类

//强调一下,cookie不是jsp内置对象,只是它是web常用的技术,所以也放在这一块写了。

cookie是在客户端保存一些文本信息,例如在保存用户的用户名和密码,以便下次访问这个网站时,直接从本地硬盘读取相应的信息,封装在请求对象里,服务器可从请求对象里获得cookie信息。

常用操作:

(1)创建一个Cookie对象

Cookie  c1=new Cookie("键名","键值");  //只能存储文本型数据

(2)获取cookie对象的键和值

cookie对象.getName()  //获得 cookie对象的键名

cookie对象.getValue()  //获得cookie对象的键值

(3)获取某个cookie对象

请求对象里有多个cookie对象,如何来获得指定的cookie对象?

//比如找键名为"username"的Cookie对象的值。

String userNameValue="";

Cookie[] cookies=request.getCookies();//获取请求对象里的所有Cookie对象

for(Cookie c:cookies){if(c.getName().equals("username")){

userNameValue=c.getValue();break;

}

}//userNameValue就是键名为username的Cookie对象的值

四、JavaBean

Java类的一个实例,通常是实体类的一个对象,实体类一般是专门用来存储数据的,一般要用公开的getter()和setter()方法。一般对应数据库中的一张表。业务类一般用来处理业务逻辑的。

1、JSP的动作标记

(1)usebean

格式:

功能:如果在指定的范围(隐含对象:request,session,application)内,没有对象,JSP就会创建一个bean,如果有的话,就取这个对象。

(2)getProperty

格式:

功能:取bean的属性

(3)setProperty

格式:

练习一:

1、新建一个产品类Product(实体类)

2、新建一个产品服务类ProductService(业务类)

添加一个方法getProducts(),获得所有产品

3、新建jsp页面ProductList.jsp,呈现所有产品。

练习二:利用session技术实现添加产品功能

1、设计一个添加产品的表单ProductForm.jsp

2、接收并处理输入的产品数据的页面AddProduct.jsp

3、修改并完善数据展示页面ProductList.jsp

JSP的指令标记

  //页面指令

  //jstl标签库指令

  //包含指令

五、 Servlet

概念:它就是Java程序,设计目的是开发动态web资源。

sevrlet是接口,HttpServlet实现Servlet接口的类,我们写的Servlet程序是继承HttpServlet,需要重写两个方法,一个doGet();另一个doPost();

创建Servlet程序

helloWorld(camel命名法)

HelloWorld(pascal命名法)

ASP

JSP(Java Server Page)

Servlet最常用的是作控制器(Controller),接收请求,调用业务类的方法处理数据,发送数据到视图(JSP)。

MVC

M:Modal(模型)

V:View(视图)

C:Controller(控制器),Servelt

六、EL和JSTL

EL(表达式语言)

可以在jsp页面直接使用隐含对象(pageContext,request,session,application)

格式:${表达式}

例如:${product.name}

JSTL:JSP  Standard Tag Libray(JSP标准标签库)

html标签:

jsp标签:

jstl标签:

使用jstl

(1)下载jstl的jar包,复制到WEB-INFO目录下。

(2)在使用jstl的jsp页面中,加入指令标记引入核心库,

引用jstl的目的是为了团队协作开发,前后端分离。

0407练习一:

设计一个添加产品表单,表单数据提交给Servlet程序处理后,将数据发送给jsp页面并显示。

1.设计一个添加产品的表单ProductForm.html

2.新建一个Servlet程序AddProductServlet1.java

3.新建视图ProductView.jsp页面展示Servlet传过来的数据

七、Java访问MySQL数据库

MySQL适合中小型项目,Oracle适合中大型应用程序。

Java使用mysql

(1)下载mysql的驱动

(2)访问mysql数据库

(一)使用MySQL CLI访问mysql数据库

c:/>mysql -u -p

常见的命令:

mysql>show databases;   //显示所有的数据库

mysql>use   //使用数据库

mysql>show tables;  //显示当前库下的所有表

mysql>desc   //查看表结构

mysql>create database    //创建数据库

mysql>create  table  (,...)

例:

create table product(

id int auto_increment primary key,  //auto_increment是自动编号

name varchar(255),  //产品名称

price  float,  //产品价格

image varchar(255)  //产品图片

);

(二)Java连接MySQL

1、java连接MySQL8.x数据库

//1.加载mysql数据连接驱动

Class.forName("com.mysql.cj.jdbc.Driver"); //8.0//2.连接数据库

Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/eshop?useSSL=false&serverTimezone=UTC", "root", "root");

//说明:8.0一定要带上参数serverTimezone=UTC

2、Java连接MySQL5.x数据库

//1.加载mysql数据库的驱动

Class.forName("com.mysql.jdbc.Driver");//2.连接数据库

Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/eshop","root","root");

3、Java连接MySQL8.0数据库,但驱动是5.x

(1)修改mysql8.0的加密规则

进入windows命令行窗口,在dos提示符下输入:mysql -u root -proot

出现mysql命令提示符"mysql>",再输入以下命令:

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'PASSWORD EXPIRE NEVER;   -- 密码永不过期mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';  --改成5.x加密规则

mysql>FLUSHPRIVILEGES;  --刷新权限mysql>alter user 'root'@'localhost' identified by 'root';  --最终修改root用户的密码

说明:

8.x和5.x的区别是加密规则不同:

5.X版本是:default_authentication_plugin=mysql_native_password

8.x版本就是:default_authentication_plugin=caching_sha2_password

(2)Java连接MySQL的主要代码

//1.加载mysql数据库的驱动

Class.forName("com.mysql.jdbc.Driver");//2.连接数据库

Connection connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/eshop","root","root");

Java读取MySQL数据库中的数据的步骤:

1、建立数据库连接Connection

2、通过Connection对象创建语句对象Statement

3、由Statement对象执行查询,获得结果集ResultSet

4、对结果集进行遍历。

Java对数据库进行写入操作步骤:

1、建立数据库连接Connection

2、通过Connection对象创建语句对象Statement或预编译的语句对象PrepareStatement

3、执行语句对象Statement或预编译的语句对象PrepareStatement

练习一:访问NBA所有的球队

1、建立球队的数据模型(实体类)Team

2、建立业务逻辑类TeamService

3、建立控制转发的Servlet类GetTeamsServlet

4、建立视图TeamList.jsp

study数据库在腾讯云上的连接信息:

数据库地址:jdbc:mysql://sh-cdb-qego3b2a.sql.tencentcdb.com:61551/study

用户名:student

密码:student

练习二:访问NBA所有的球员

1、建立球员的数据模型(实体类)Player

2、建立业务逻辑类PlayerService

3、建立控制转发的Servlet类GetPlayersServlet

4、建立视图PlayerList.jsp

study数据库在腾讯云上的连接信息:

数据库地址:jdbc:mysql://sh-cdb-qego3b2a.sql.tencentcdb.com:61551/study

用户名:student

密码:student

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序,本次开发一套基于微信小程序的生签到系统,有管理员,教师,学生三个角色。管理员功能有个人中心,学生管理,教师管理,签到管理,学生签到管理,班课信息管理,加入班课管理,请假信息管理,审批信息管理,销假信息管理,系统管理。教师和学生都可以在微信端注册和登录,教师可以管理签到信息,管理班课信息,审批请假信息,查看学生签到,查看加入班级,查看审批信息和销假信息。学生可以查看教师发布的学生签到信息,可以自己选择加入班课信息,添加请假信息,查看审批信息,进行销假操作。基于微信小程序的生签到系统服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json数据,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值