javaweb

javaweb的学习

Javaweb包括
在这里插入图片描述
学习JavaWeb前提需学会javase,mysql,JDBC,以及一些WEB前端(会一些)

学习内容:
1:Servlet为核心,从Servlet开始学习
2:JSP
3:AjAX(异步通信技术)
4:jQuery(JavaScript库)
5:MyBatis
6:Spring
7:SpringMVC
8:SpringBoot
。。。。。。。等

系统架构包括什么形式?
①C/S ②B/S
①Client/Server(客户端/服务端)
如QQ
特点:需安装特定的客户端软件
优点:速度快(软件中的数据大部分都是集成到客户端软件中的,很少量的数据从服务其端传送过来),体验好,界面好,服务器压力小(大量数据集成在客户端软件中),安全
在这里插入图片描述
客户端访问,服务端响应
缺点:升级维护比较差(每一个客户端软件都需要升级,有一些软件不是那么容易安装的)
②Browser/Server(浏览器/服务器)
http://www.baidu.com
B/S结构的系统是不是一个特殊的C/S系统?
实际上B/S结构的系统还是一个特殊的C/S
优点:1:升级维护方便,成本比较低(只需要升级服务器端即可)
2:不需要安装特定的客户端软件,只需打开浏览器输入网址即可
缺点:1:速度慢(因为所有的数据都是在服务器,用户发送的每一个请求都是需要服务器全身心的响应数据,所以在网络中传送的数据量比较大)
2:体验差
3:不安全:所有的数据都在服务器上,只要服务器发生变化,可能导致数据全部丢失
注意:开发Bs结构的系统,其实就是开发网站,其实就是开发一个web系统
开发一个web系统你需要会哪些技术:
前端:
HTML CSS JavaScript
后端:
java可以(java做web开发我们称为javaweb开发。javaweb开发最核心的规范:Servlet)

javaee
java包括三大块:javase(标准版)javaee(企业版)别人写好的,你用就行了,用它可以开发企业级项目,可以开发web系统。这个方向比较火。。javame(微型版)还是一套类库,帮助我们进行电子微型设备内核程序的开发
如:机顶盒内核程序,电冰箱内核程序

javaee包括很多种规范,13种,其中Servlet就是javaee规范之一,学servlet还是java语言

B/S结构系统通信原理

一:web系统访问过程:
1:打开浏览器
2:找到地址栏
3:输入一个合法地址
4:搜索
5:在浏览器上会展示响应的结果

二:关于域名
https://www.baidu.com/(网址)
www.baidu.com是一个域名
在浏览器地址栏上输入域名回车后,域名解析器会将域名解析出来一个具体的ip地址和端口号
ip地址是啥:计算机在网络当中的一个身份证号,在同一个网络当中,ip地址是唯一的
例如:A计算机想和B计算机通信,首先你要知道B计算机的ip地址,有了ip地址才能建立连接

端口号:一个端口代表一个软件
一个计算机当中有很多软件,每一个软件启动后都有一个端口号,在同一个计算机上,端口号具有唯一性

一个web系统的通信原理?
1:用户输入url
2:域名解析器进行域名解析 https://110.242:80/html
3:浏览器在网络中搜索110.240这台机器
4:定位到这台主机上的服务器软件,因为有80端口
5:80端口对应的服务器软件得知浏览器想要的资源名:html
6:服务器软件找到html文件,并且将html文件中的内容直接响应到浏览器上
7:浏览器接收来自服务器的代码
8:浏览器执行

什么是请求,什么是响应:
实际上说得是数据的流向不同,从Browser端发送数据到Server端,我们称为请求。
从Server端向浏览器端

关于web服务器软件
Tomcat:轻量级的web服务器
jetty

应用服务器和web服务器的关系
应用服务器实现了javaee的所有规范(javaee有13个不同规范)
web服务器只实现了java中的servlet+jsp两个核心的规范

http://110.120.130.250:80/oa/index.html

计算机访问服务器:前为IP
80为端口,端口里有oa软件,用软件里面的index.index

Tomact目录:
bin:命令文件存放目录,如启动关闭Tomact
conf:配置文件存放目录,server.xml文件中可以配置端口号,默认端口8080
lib:核心程序目录,这里的jar包都是class文件
logs:日志目录。服务器启动等信息会在这个目录下生成日志文件
temp:临时目录,存储临时文件
webapps:存放webapp(自带webapp)
work:存放jsp文件翻译之后的java文件以及编译之后的class文件

启动 bin目录下的startup.bat通过它可以启动服务器 xxx.sh是在linux系统中用的,启动startup.bat启动后会找到Cata.bat然后Cata.bat会找到mai方法

**测试Tomact服务器启动:**打开浏览器:在地址栏中输入url即可
:http://ip地址:端口号
端口号8080
本机ip:127.0.0.1或者locallhost

实现一个最基本的web应用(没有java程序)
一:找到CATALINA_HOME\webapps目录
因为所有的webapp都要放到webapps目录下
二:在CATALINA_HOME\webapps目录下,新建一个子目录:oa(webapp的名字)
三:在oa目录下新建资源文件夹,例如index.xml 编写内容
四:启动Tomact服务器
五:打开浏览器,输入url:
http://127.0.0.1:8080/oa/index.html
这种web为静态资源
对于一个动态的web应用来说,一个请求和响应的过程有多少个角色参与,角色和角色之间有多少个协议
(1)有哪些角色,在整个BS结构的系统中,有哪些人参与
浏览器软件的开发商,web server的开发团队(Tomcat),DB Server的开发团队(Mysql)
,webapp的开发(是我们程序员开发的)
(2)角色和角色之间需要遵守哪些规范,哪些协议:
webapp的开发团队和web server的开发团队之间有一套规范javaee规范之一Servlet规范。。
Browser和webserver之间有一套传输协议:HTTP
。。。webapp开发团队和DBserver开发团队之间有一套规范:JDBC
在这里插入图片描述
模拟Servlet:
*充当sun公司,制定规范:javax.servlet.Service接口
*Tomcat服务器的开发者 写主程序浏览器通过url实现Userlist(需通过url获取,
用到键值对思想,另加一个配置文件写如/aaa=Userlist的包名)Tomcat服务器解析配置文件

FileReader reader=mew FileReader("配置文件文件名");
Properties pro =new Preperties();
pro.load(reader);
reader.close();

//通过key获取value
String className=pro.getProperty(key);
//通过反射机制创建对象
Class clazz=Class.forName(className);
Object obj=clazz.newInstance();
//obj类型对于Tomcat服务器开发人员并不知道
Servlet servlet =(Servlet)obj;
servlet.service();
  • 充当webapp的开发者:Userlist implements Service

    对于我们来说:
    一:编写一个类实现Servlet接口
    二:将编写的类配置到配置文件中,在配置文件中指定请求路径和类名的关系
    *注意:*配置文件的文件名和存放路径是固定的

开发一个带有Servlet的webapp(重点)
*开发步骤是怎样的?
①在webapp的目录下新建一个目录,起名crm(crm就是这个webapp的根)
②在crm目录下新建一个目录WEB-INF(WEB-INF必须一样,必须大写)
③在WEB-INF下新建一个目录classes(Servlet规范中规定,这里存放的是字节码文件)
④在WEB-INF目录下新建一个目录:lib
注意:如果一个webapp需要第三方的jar包的话,这个jar包要放到这个目录下,例如java语言连接数据库需要数据库的驱动jar包,那么这个jar包就要放到lib目录下
⑤在WEB-INF目录下新建一个文件:web.xml
注意:这个文件是必须的,是一个配置文件,在这个配置文件中描述了请求路径和Servlet类之间的对照关系,从其他webapp中拷贝即可
⑥编写一个java程序,这个小java程序必须实现Servlet接口,放到classer中(init,service,destory,getServletInfo,ServletConfig实现五个方法),只需存放编译完后的class文件即可。
这个Servlet接口不在JDK中,Tomcat服务器中lib目录下有Servlet的jar包,解压这个Servlet.api.jar后jakarta-servlet-Servlet.class

关于javaee的版本Apache把javaee改名了,以后叫做jakarta EE,jakaratEE9对应的Servlet类目是:jakarta.servlet.Servlet(包名都换了)

⑦编译
注意:需配置环境变量CLASSPATH,只是为了让java程序能够正常编译生成class文件
CLASSPATH=.;(servlet.api.jar路径)
⑧将以上编译的.class文件拷贝到WEB-INF的classes目录下
⑨在web.xml中编写配置信息,让请求路径和类名关联在一起(注册Servlet)

//任何一个servlet必须对应一个mapping
<servlet>
	<servlet-name>---</servlet-name> 
	<servlet-class>----</servlet-class>   
	//带有包名的全限定类名
</servlet>
<servlet-mapping>
     <servlet-name>---</servlet-name> 	//name名字和上面的名字一样
     <url-pattern>---</url-pattern>    //这个路径必须以/开始
 </servlet-mapping>    

⑩启动Tomcat服务器(startup.bat),浏览器地址栏输入url(http://127.0.0.1.8080/crm/[url-pattern中的路径])

注意:如果浏览器编写的路径太复杂,可以使用超链接(html页面只能放到WEB-INF目录外面)

怎样将一个信息直接输出到浏览器上?
需要使用ServletResponse接口:response
response表示响应:从服务器向浏览器发送数据叫做响应。

//浏览器能识别html代码,需设置响应的类型为普通文本/html代码,放在获取流对象之前
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.print("This is my first servlet");

out.print("<h1>hello servlet</h1>");

在Servlet中连接数据库,怎么做

直接写java代码即可(jdbc),在service方法中写

Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
  //注册驱动
  Class.forName("com.mysql.cj.jdbc.Driver");
  //获取连接
  String url="jdbc:mysql://localhost:3306/要连的数据库名";
  String user="";
  String password="";
  conn=DriverManager.getConnection(url,user,password);
  //获取预编译的数据库操作对象
  String sql="select no,name from t_student";
  ps=conn.prepareStatement(sql);
  //执行sql
  rs=ps.executeQuery();
  //查询结果集
  while(rs.next())
  {
  String no=rs.getString("no");
  String name=rs.getString("name");
  System.out.println(no+","+name);//打印输出
  }catch(Exception e){
   e.printStackTrace();}
   finally{
   //释放资源
   if(rs!=null){
   	try{
   	rs.close();}
   	catch(Exception e)
   	{
   	e.printStackTrace();
   	}}
   	//后面还需关闭ps,conn
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值