Java代码嵌入HTML中有两种方式
1、直接在HTML文档中写JSP代码,服务器底层会将其编译成一个Java类,服务器将Java类运行的结果插入到HTML中,返回给客户端。服务器端只能看到Java类运行的结果,而看不见源码。这种文件为 .jsp 文件。
例如:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
out.println("欢迎使用JSP");
%>
</body>
</html>
2、独立于HTML的Servlet类,这个类继承自HttpServlet。通过配置web.xml 文件,当有表单提交到特定的页面时,这个Servlet类将会实例化,并且根据表单的提交方式调用 doGet( ) 或 doPost( ) 方法。在方法里我们可以获取out,request,response,session,application等JSP内置对象。
接下来是第一个servlet例子,该例子为:输入个人信息,通过servelt类获取,并且输出(实际上在这里可以对你获取的信息做任何处理,就与内嵌的Jsp相同)。
一、新建Jsp文件,创建表单form
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Servlet</title>
</head>
<body>
<form action="Servlet/Servlet1" method="POST">
用户名:<input type="text" name="username"> <br>
邮 箱:<input type="text" name="email" > <br>
地 址:<input type="text" name="address"> <br>
简 历: <br>
<textarea name="resume" id="" cols="30" rows="10"></textarea>
<input type="submit">
</form>
</body>
</html>
在这里, action=“Servlet/Servlet1” 指定表单提交的位置只是一个路径并不是具体的Jsp页面,所以后续需要在web.xml中配置相关信息,当跳转到该路径时,实例化Servlet类对表单提交进行处理。
二、新建Servlet类
这里的Servlet1类就是我们的Servlet类。
package Servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class Servlet1 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 设置编码信息
response.setCharacterEncoding("GBK");
// 获取表单信息
String username = request.getParameter("username");
String email = request.getParameter("email");
String address = request.getParameter("address");
String resume = request.getParameter("resume");
// 获取out对象,进行输出
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello world</title>");
out.println("</head>");
out.println("<body>");
out.println("用户名:"+username+"<br>");
out.println("邮 箱:"+email+"<br>");
out.println("地 址:"+address+"<br>");
out.println("简 历:"+resume+"<br>");
out.println("</body>");
out.println("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
doGet(request,response);
}
}
三、配置web.xml
表单在提交位置为项目路径,所以需要进行配置,当客户端对该路径进行请求时,实例化Servlet类对表单的提交进行处理。
配置servlet:
<?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>Servlet1</servlet-name>
<servlet-class>Servlet.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/Servlet/Servlet1</url-pattern>
</servlet-mapping>
</web-app>
四、运行结果
1、index.jsp页面
2、Servlet1运行结果