public class test{
public static void main (String[] args){
}
}
1、系统架构包括什么形式
C/S架构
B/S架构
2、C/S架构
Client / Server(客户端,服务器)
C/S架构的软件或者说系统有哪些呢?
C/S架构的特点:需要安装特定的客户端软件。
C/S架构的系统优点和缺点分别是什么?
3、B/S架构?
4、C/S和B/S结构的系统,哪个好,哪个不好?
5、注意了:开发B/S结构的系统,其实就是开发网站,其实就是开发一个WEB。
6、javaEE是什么?
WEB系统的访问过程
关于域名:
IP地址是啥?
端口号是啥?
一个WEB系统的通信原理?通信步骤:
什么是URL?
什么是请求,什么是响应?
<a href="/oa/login.html">index_logina>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pWhRVL8t-1644296175899)(C:\Users\L\AppData\Roaming\Typora\typora-user-images\image-20220206231401242.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7BtyuTq9-1644296175900)(C:\Users\L\AppData\Roaming\Typora\typora-user-images\image-20220206233112905.png)]
开发步骤是怎样的?
第一步:在webapps目录下新建一个目录,起名crm(这个crm就是webapp的名字)。当然,也可以是其它项目,比如银行项目,可以创建一个bank,办公系统可以创建一个oa。
第二步:在webapp的根下新建一个目录:WEB-INF
第三步:在WEB-INF目录下新建一个目录:classes
第四步:在WEB-INF目录下新建一个目录:lib
第五步:在WEB-INF目录下新建一个文件:web.xml
注意:这个文件是必须的,这个文件名必须叫做web.xml。这个文件必须放在这里。一个合法的webapp,web.xml文件是必须的,这个web.xml文件就是一个配置文件,在这个配置文件中描述了请求路径和Servlet类之间的对照关系。
这个文件最好从其他的webapp文件中拷贝,最好别手写。没必要。复制粘贴
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true">
web-app>
第六步:编写一个java程序,这个小java程序也不能随意开发,这个小java程序必须实现Servlet接口.
第七步:编译我们编写HelloServlet
第八步:将以上编译之后的HelloServlet.class文件拷贝到WEB-INF\classes目录下。
第九步:在web.xml文件中编写配置信息,让“请求路径”和"Servlet类名"关联在一起。
这一步用专业术语描述:在web.xml文件中注册Servlet。
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true">
<servlet>
<servlet-name>sersernameservlet-name>
<servlet-class>com.bjpowernode.servlet.HelloServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>sersernameservlet-name>
<url-pattern>/myfirst/ht/mlurl-pattern>
servlet-mapping>
web-app>
第十步:启动Tomcat服务器
第十一步:打开浏览器,在浏览器地址栏上输入一个url,这个url必须是:
浏览器上编写的路径太复杂,可以使用超链接。(非常重要:Html页面只能放到WEB-INF页面目录之外)
以后不需要我们编写main方法了。tomcat服务器负责调用main方法,Tomcat服务器启动的时候执行的就是main方法。我们javaweb程序员只需要编写Servlet接口的实现类,然后将其注册到web.xml文件中,即可。
总结以下:一个合法的webapp目录结构应该是怎样的?
webapproot
|------WEB-INF
|------classes(存放字节码)
|------lib(第三方jar包)
|------web.xml(注册Servlet)
|------html
|------css
|------javascript
|------image
....
浏览器发送请求,到最终服务器调用Servlet中的方法,是怎样的一个过程?(以下这个描述的很粗糙。其中还有很多步骤省略了。)
将CATALINA_HOME/conf/logging.properties文件中的内容修改如下:
java.util.logging.ConsoleHandler.encoding = GBK
public void service(ServletRequest request,ServletResponse response){
response.setContentType("text/html");
printWriter.out = response.getWriter();
out.print("hello servlet!
");
}
Servlet是java程序,所以在Servlet中完全可以编写JDBC代码连接数据库。
package com.bjpowernode.servlet;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.PrintWriter;
import java.io.IOException;
import java.sql.*;
public class jdbcServlet implements Servlet {
//5个方法
public void init(ServletConfig config)throws ServletException{}
public void service(ServletRequest request,ServletResponse response)
throws ServletException,IOException{
//设置响应的内容的类型
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
//JDBC
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode","root","root");
//创建预编译数据库对象
String sql = "select ename,sal from emp";
ps = conn.prepareStatement(sql);
//执行sql
rs = ps.executeQuery();
//处理查询结果集
while(rs.next()){
String name = rs.getString("ename");
String sal = rs.getString("sal");
out.print("name: " + name + "sal :"+ sal + "
");
}
//释放资源o
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!= null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(ps!= null){
try{
ps.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(conn!= null){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
public void destroy(){}
public String getServletInfo(){
return "";
}
public ServletConfig getServletConfig(){
return null;
}
}
在webapp中去连接数据库需要将jar 包放到WEB-INF/lib目录下。
C:\dev\apache-tomcat-10.0.16\webapps\crm\WEB-INF\lib
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CK9wtuPw-1644296175901)(C:\Users\L\AppData\Roaming\Typora\typora-user-images\image-20220208121121387.png)]
printStackTrace();
}
}
}
}
public void destroy(){}
public String getServletInfo(){
return "";
}
public ServletConfig getServletConfig(){
return null;
}
}
- 在webapp中去连接数据库需要将jar 包放到WEB-INF/lib目录下。
- (在mysql5.0的版本中:“com.mysql.jdbc.Driver” 这个类就在驱动jar包当中。‘在老杜的java8.0.27版本中 是这样写的 "com.mysql.cj.jdbc.Driver")
- C:\dev\apache-tomcat-10.0.16\webapps\crm\WEB-INF\lib
- [外链图片转存中...(img-CK9wtuPw-1644296175901)]
## 在集成开发环境当中开发Servlet程序