网站的组成
1、客户端(浏览器页面)
2、服务器
特点:服务器一般是不停机的,但不是一定的,可能因为非正常因素宕机
3、应用服务器
4、数据库
前端向后端发送请求的过程?
1、前端向服务器发送请求
2、服务器将请求传递给应用服务器
3、应用服务器(代码放置于应用服务器中)获取请求数据
4、应用服务器将请求数据与数据库进行交互得到结果
5、应用服务器返回给字符串给前端,之后前端执行不同操作。或者根据需求应用服务器执行相应的JSP客户页面
Servlet和JSP的作用
Servlet:可以根据客户端请求控制逻辑的走向,Java代码编写,存在于动态项目中
JSP:用于显示用户界面,是包裹Java代码的HTML文件
一个动态web项目中请求实现过程
1、首先将动态web项目添加到Tomcat服务器中,Tomcat应用服务器最终也要放到外网上
2、查找web.xml文件,看是否有对应的Servlet与路径对应
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>JSP</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>com.lanou.action.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3、执行相应的类文件,req.getParameter或者req.getParameterValues获取数据执行操作,resp.sendRedirect("hello.jsp")跳转到某个JSP页面
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
String ps = req.getParameter("ps");
System.out.println("name:"+name);
System.out.println("ps:"+ps);
resp.sendRedirect("hello.jsp");
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
4、执行某个JSP页面,其中可以嵌套Java代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
for(int i = 1; i < 7; i++){
out.println("hello"+i);
}
%>
<%
for(int j = 1; j < 7; j++){
%>
<p>hello<%=j %><p/>
<% } %>
</body>
</html>
JSP文件注意事项
1、使用request.getParameter获取参数
2、<%%>中使用out.println("")或者使用<%=name%>
3、两者都是同行显示
在动态项目下WebContent中html和JSP发送请求的区别
1、HTML向动态项目发送请求
注意:在HTML中只能写hello请求
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="hello">
用户名:<input type="text" name = "name">
密码:<input type = "text" name = "ps" >
<input type = "submit" value = 注册>
</form>
</body>
</html>
2、JSP文件向动态项目或者一个JSP文件发送请求
注意:action也可以使用hello请求
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="yellow.jsp">
用户名:<input type="text" name = "name">
密码:<input type = "password" name = "ps">
<input type = "submit" value="注册">
</form>
</body>
</html>
接收请求的JSP文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%String name = request.getParameter("name");
String ps = request.getParameter("ps");
%>
<%=name %>
<%=ps %>
</body>
</html>