1.什么是BS什么是CS
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/s是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或 Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。
咱们学习BS
2.什么是服务器
服务器就是 提供服务的设备。是由硬件和软件两部分组成。
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服 务器应具备承担服务并且保障服务的能力。 服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的 服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。 在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。
硬件服务器:构成包括处理器、硬盘、内存、系统总线等组成的电脑主机
软件服务器: web服务器: tomcat 数据库服务器: MySQL、Oracle 反向代理服务器: nginx 缓存服务器: Redis 【nosql】
3.tomcat
tomcat有哪些文件夹各自的作用是什么?
bin: 有关tomcat运行启动停止等内容的脚本文件
conf: 关于tomcat的配置文件
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
lib: 存放jar包
logs: 存放日志文件
temp: 存放临时文件
webapps: 存放tomcat运行的项目
work: 存放jsp编译后的java文件和字节码文件
4.静态动态资源
在Java中,静态资源和动态资源是在Web开发中常用的概念。
1. 静态资源(Static Resource):静态资源是指在服务器上存储的不会动态改变的文件,如HTML文件、CSS样式表、JavaScript文件、图像文件等。这些文件内容在请求时保持不变,服务器会直接将这些静态资源发送给客户端浏览器,浏览器按照其内容进行渲染。
2. 动态资源(Dynamic Resource):动态资源是指在服务器上根据客户端请求动态生成的内容。例如,使用Java编写的Servlet或JSP页面可以接收请求并根据请求的参数、数据库查询等动态生成页面内容。动态资源的内容在每个请求时可能会发生变化。
静态资源适用于不经常变化的内容,因为它们可以被缓存并重复使用,从而提高网站的性能。动态资源则适用于需要根据用户请求和其他数据动态生成内容的情况。
5.tomcat对web项目的目录层级要求
6.搭建动态网页
6.1StudentServlet
package com.aaa.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @Author Grg
* @Date 2023/8/18 15:23
* @PackageName:com.aaa.day01.servlet
* @ClassName: StudentServlet
* @Description: 又是码代码的一天
* @Version plus max 宇宙无敌终极版本
*/
public class StudentServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.查询数据
List<HashMap<String, Object>> data = new ArrayList<>();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql:///jdbctest?characterEncoding=UTF-8&useSSL=false", "root", "123456");
PreparedStatement ps = conn.prepareStatement("select * from student");
ResultSet set = ps.executeQuery();
int count = set.getMetaData().getColumnCount();
while (set.next()) {
HashMap<String, Object> map = new HashMap<>();
for (int i = 1; i <= count; i++) {
map.put(set.getMetaData().getColumnLabel(i),
set.getObject(i));
}
data.add(map);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
//2.将数据响应给浏览器
//说明 响应的数据类型
resp.setContentType("text/html;charset=UTF-8");
//IO流操作
PrintWriter out = resp.getWriter();
out.write("<table>");
for (HashMap<String, Object> map : data) {
out.write("<tr>");
out.write("<td>" + map.get("id") + "</td>");
out.write("<td>" + map.get("name") + "</td>");
out.write("<td>" + map.get("age") + "</td>");
out.write("<td>" + map.get("address") + "</td>");
out.write("</tr>");
}
out.write("</table>");
out.close();
}
}
6.2web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>haha</servlet-name>
<servlet-class>com.aaa.servlet.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>haha</servlet-name>
<url-pattern>/stu</url-pattern>
</servlet-mapping>
</web-app>
6.3pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.grg</groupId>
<artifactId>webday01</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>webday01 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>webday01</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>7</source>
<target>7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>