我是灼灼,一只初学Java的大一金渐层。
向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄;追逐过王尔德、王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔;热爱文学的浪潮,白日梦到底却总在现实里清醒;艳羡平静又极度渴盼奔跑的力量。
欢迎与我交流鸭· QQ:1517526827;
个人博客:https://blog.csdn.net/weixin_52777510?spm=1001.2101.3001.5343
jsp 学习笔记
JSP 文件上传
JSP 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器。上传的文件可以是文本文件或图像文件或任何文档。
使用 Servlet 来处理文件上传,使用到的文件有:
- upload.jsp : 文件上传表单。
- message.jsp : 上传成功后跳转页面。
- UploadServlet.java : 上传处理 Servlet。
- 需要引入的 jar 文件:commons-fileupload-1.3.2、commons-io-2.5.jar。
添加上面两个jar的时候,注意添加到 WEB-INF 下 lib 目录里面,并添加到 build path,否则会报错:
java.lang.ClassNotFoundException: org.apache.commons.fileupload.servlet.ServletFileUpload
创建一个文件上传表单
需要注意:
- 表单 method 属性应该设置为 POST 方法,不能使用 GET 方法。
- 表单 enctype 属性应该设置为 multipart/form-data.
- 表单 action 属性应该设置为在后端服务器上处理文件上传的 Servlet 文件。下面的实例使用了 UploadServlet Servlet 来上传文件。
- 上传单个文件,使用单个带有属性
type="file" 的 <input .../>
标签。为了允许多个文件上传,应包含多个 name 属性值不同的 input 标签。输入标签具有不同的名称属性的值。浏览器会为每个 input 标签关联一个浏览按钮。
upload.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>文件上传实例 - 菜鸟教程</title>
</head>
<body>
<h1>文件上传实例 - 菜鸟教程</h1>
<form method="post" action="/TomcatTest/UploadServlet" enctype="multipart/form-data">
选择一个文件:
<input type="file" name="uploadFile" />
<br/><br/>
<input type="submit" value="上传" />
</form>
</body>
</html>
编写后台 Servlet
在这之前先确保依赖包已经引入到项目的 WEB-INF/lib 目录下;UploadServlet 的源代码,和处理文件一同上传
- 该实例依赖于 FileUpload,一定要确保在 classpath 中有最新版本的 commons-fileupload.x.x.jar 文件。可以从 http://commons.apache.org/proper/commons-fileupload/ 下载。
- FileUpload 依赖于 Commons IO,一定要确保在 classpath 中有最新版本的 commons-io-x.x.jar 文件。可以从 http://commons.apache.org/proper/commons-io/ 下载。
可以直接下载提供的两个依赖包:
UploadServlet 的源代码:
package com.runoob.test;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class UploadServlet
*/
// 如果不配置 web.xml ,可以使用下面的代码
// @WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// 上传文件存储目录
private static final String UPLOAD_DIRECTORY = "upload";
// 上传配置
private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB
private static final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB
private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB
/**
* 上传数据及保存文件
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 检测是否为多媒体上传
if (!ServletFileUpload.isMultipartContent(request)) {
// 如果不是则停止
PrintWriter writer = response.getWriter();
writer.println("Error: 表单必须包含 enctype=multipart/form-data");
writer.flush();
return;
}
// 配置上传参数
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存临界值 - 超过后将产生临时文件并存储于临时目录中
factory.setSizeThreshold(MEMORY_THRESHOLD);
// 设置临时存储目录
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大文件上传值
upload.setFileSizeMax(MAX_FILE_SIZE);
// 设置最大请求值 (包含文件和表单数据)
upload.setSizeMax(MAX_REQUEST_SIZE);
// 中文处理
upload.setHeaderEncoding("UTF-8");
// 构造临时路径来存储上传的文件
// 这个路径相对当前应用的目录
String uploadPath = getServletContext().getRealPath("/") + File.separator + UPLOAD_DIRECTORY;
// 如果目录不存在则创建
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
try {
// 解析请求的内容提取文件数据
@SuppressWarnings("unchecked")
List<FileItem> formItems = upload.parseRequest(request);
if (formItems != null && formItems.size() > 0) {
// 迭代表单数据
for (FileItem item : formItems) {
// 处理不在表单中的字段
if (!item.isFormField()) {
String fileName = new File(item.getName()).getName();
String filePath = uploadPath + File.separator + fileName;
File storeFile = new File(filePath);
// 在控制台输出文件的上传路径
System.out.println(filePath);
// 保存文件到硬盘
item.write(storeFile);
request.setAttribute("message",
"文件上传成功!");
}
}
}
} catch (Exception ex) {
request.setAttribute("message",
"错误信息: " + ex.getMessage());
}
// 跳转到 message.jsp
getServletContext().getRequestDispatcher("/message.jsp").forward(
request, response);
}
}
message.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>文件上传结果</title>
</head>
<body>
<center>
<h2>${message}</h2>
</center>
</body>
</html>
编译和运行 Servlet
编译上面的 Servlet UploadServlet,并在 web.xml 文件中创建所需的条目:
<?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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<servlet>
<display-name>UploadServlet</display-name>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>com.runoob.test.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/TomcatTest/UploadServlet</url-pattern>
</servlet-mapping>
</web-app>
使用在上面创建的 HTML 表单来上传文件,在浏览器中访问:http://localhost:8080/TomcatTest/upload.jsp ,演示如下所示:
JSP 日期处理
使用JSP可以使用所有Java API。Java中的Date类在java.util包下,封装了当前日期和时间。
Date类有两个构造函数。第一个构造函数使用当前日期和时间来初始化对象。
Date( )
第二个构造函数接受一个参数,这个参数表示从1970年1月1日凌晨至所要表示时间的毫秒数。
Date(long millisec)
获取Date对象后,就可以使用这些方法:
序号 | 方法 & 描述 |
---|---|
1 | **boolean after(Date date)**如果比给定的日期晚,则返回true,否则返回false |
2 | **boolean before(Date date)**如果比给定的日期早,则返回true,否则返回false |
3 | **Object clone( )**获取当前对象的一个副本 |
4 | **int compareTo(Date date)**如果与给定日期相等,则返回0,如果比给定日期早,则返回一个负数,如果比给定日期晚,则返回一个正数 |
5 | **int compareTo(Object obj)**与 compareTo(Date) 方法相同,如果 obj 不是Date类或其子类的对象,抛出ClassCastException异常 |
6 | **boolean equals(Object date)**如果与给定日期相同,则返回true,否则返回false |
7 | **long getTime( )**返回从1970年1月1日凌晨至此对象所表示时间的毫秒数 |
8 | **int hashCode( )**返回此对象的哈希码 |
9 | **void setTime(long time)**使用给定参数设置时间和日期,参数time表示从1970年1月1日凌晨至time所经过的毫秒数 |
10 | **String toString( )**将此对象转换为字符串并返回这个字符串 |
获取当前日期和时间
使用JSP编程可以很容易的获取当前日期和时间,使用Date对象的toString()方法即可:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
<html>
<head>
<title>显示当前时间与日期</title>
</head>
<body>
<h1>显示当前时间与日期</h1>
<%
Date date = new Date();
out.print( "<h2 align=\"center\">" +date.toString()+"</h2>");
%>
</body>
</html>
将代码保存在 main.jsp 文件中,访问 http://localhost:8080/testjsp/main.jsp,运行结果:
显示当前时间与日期
Sat Jun 25 17:54:34 CST 2016
刷新 http://localhost:8080/testjsp/main.jsp,就可以发现每次刷新所得到的秒数都不相同。
日期比较
可以在JSP脚本中使用任何Java方法。
参照下面的方法:
- 使用getTime()方法得到毫秒数,然后比较毫秒数就行了。
- 使用before(),after(),equals()方法。比如,new Date(99,2,12).before(new Date(99,2,18))返回true。
- 使用compareTo()方法,这个方法在Comparable接口中定义,在Date中实现。
使用SimpleDateFormat格式化日期
SimpleDateFormat使用一种地区敏感的方式来格式化和解析日期,它允许使用自定义的模式来格式化日期和时间。
对CurrentDate.jsp稍作修改,得到修改后的代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<%@ page import="javax.servlet.*,java.text.*" %>
<html>
<head>
<title>显示当前时间与日期</title>
</head>
<body>
<h1>显示当前时间与日期</h1>
<%
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
%>
</body>
</html>
再次编译 main.jsp,访问 http://localhost:8080/testjsp/main.jsp,就可以得到如下结果:
显示当前时间与日期
2016-06-25 17:57:53
SimpleDateFormat格式码
要指定模式字符串,需要使用下表列出的格式码:
字符 | 描述 | 示例 |
---|---|---|
G | 时代标识符 | AD |
y | 4位数年份 | 2001 |
M | 月 | July or 07 |
d | 日 | 10 |
h | 12小时制, A.M./P.M. (1~12) | 12 |
H | 24小时制 | 22 |
m | 分钟 | 30 |
s | 秒 | 55 |
S | 毫秒 | 234 |
E | 星期 | Tuesday |
D | 一年中的某天 | 360 |
F | 一个月中某星期的某天 | 2 (second Wed. in July) |
w | 一年中的某星期 | 40 |
W | 一个月中的某星期 | 1 |
a | A.M./P.M. 标记 | PM |
k | 一天中的某个小时 (1~24) | 24 |
K | 一天中的某个小时,A.M./P.M. (0~11) | 10 |
z | 时区 | Eastern Standard Time |
’ | 文本分隔 | Delimiter |
" | 单引号 | ` |
JSP 页面重定向
当需要将文档移动到一个新的位置时,需要使用JSP重定向。
最简单的重定向方式是使用response对象的sendRedirect()方法。方法签名如下:
public void response.sendRedirect(String location)throws IOException
这个方法将状态码和新的页面位置作为响应发回给浏览器。也可以使用setStatus()和setHeader()方法来得到同样的效果:
....
String site = "http://www.runoob.com" ;
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
....
JSP页面重定向实例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>页面重定向</title>
</head>
<body>
<h1>页面重定向</h1>
<%
// 重定向到新地址
String site = new String("http://www.runoob.com");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
%>
</body>
</html>
将代码保存在PageRedirecting.jsp文件中,然后访问http://localhost:8080/PageRedirect.jsp,将会跳转到新页面。
JSP 点击量统计
要知道某个页面被访问的次数,就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上。
要实现一个计数器,可以利用应用程序隐式对象和**相关方法getAttribute()和setAttribute()**来实现。
这个对象表示JSP页面的整个生命周期中。JSP页面初始化时创建此对象,JSP页面调用**jspDestroy()**时删除该对象。
在应用中创建变量的语法:
application.setAttribute(String Key, Object Value);
使用上述方法来设置一个计数器变量及更新该变量的值。读取该变量的方法:
application.getAttribute(String Key);
在页面每次被访问时,可以读取计数器的当前值,并递增1,然后重新设置,在下一个用户访问时就将新的值显示在页面上。
如果要计算网站使用页面的总点击量,那么就必须将该代码放在所有的JSP页面上:
使用JSP来计算特定页面访问的总人数:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>访问量统计</title>
</head>
<body>
<%
Integer hitsCount =
(Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ){
/* 第一次访问 */
out.println("欢迎访问菜鸟教程!");
hitsCount = 1;
}else{
/* 返回访问值 */
out.println("欢迎再次访问菜鸟教程!");
hitsCount += 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>页面访问量为: <%= hitsCount%></p>
</body>
</html>
将代码放置于main.jsp文件上,并访问http://localhost:8080/testjsp/main.jsp文件。会看到页面生成一个计数器,在每次刷新页面时,计数器都会发生变化(每次刷新增加1)。
也可以通过不同的浏览器访问,计数器会在每次访问后增加1。如下所示:
复位计数器(本质就是在对数据库操作)
使用以上方法,在 web 服务器重启后,计数器会被复位为 0,即前面保留的数据都会消失,使用以下几种方式解决该问题:
- 在数据库中定义一个用于统计网页访问量的数据表 count,字段为 hitcount,hitcount 默认值为0,将统计数据写入到数据表中。
- 在每次访问时读取表中 hitcount 字段。
- 每次访问时让 hitcount 自增 1。
- 在页面上显示新的 hitcount 值作为页面的访问量。
- 如果需要统计每个页面的访问量,可以使用以上逻辑将代码添加到所有页面上。
JSP 自动刷新
要实现实时功能,就不得不规律性地刷新页面。
JSP提供了一种机制来定时地自动刷新页面。
刷新一个页面最简单的方式是使用response对象的setIntHeader()方法。方法签名如下:
public void setIntHeader(String header, int headerValue)
这个方法通知浏览器在给定的时间后刷新,时间以秒为单位。
页面自动刷新程序示例
使用setIntHeader()方法来设置刷新头,模拟一个数字时钟:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>自动刷新实例</title>
</head>
<body>
<h2>自动刷新实</h2>
<%
// 设置每隔5秒刷新一次
response.setIntHeader("Refresh", 5);
// 获取当前时间
Calendar calendar = new GregorianCalendar();
String am_pm;
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
if(calendar.get(Calendar.AM_PM) == 0)
am_pm = "AM";
else
am_pm = "PM";
String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
out.println("当前时间为: " + CT + "\n");
%>
</body>
</html>
把代码保存在main.jsp文件中,访问它。会每隔5秒钟刷新一次页面并获取系统当前时间。运行结果如下:
自动刷新实
当前时间为: 6:5:36 PM
JSP 发送邮件
使用JSP实现邮件发送功能很简单,需要有JavaMail API,并且需要安装JavaBean Activation Framework。
- 可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。
- 可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。
也可以使用提供的下载链接:
下载并解压这些文件,在根目录下,会看到一系列jar包。将mail.jar包和activation.jar包加入CLASSPATH变量中。
发送一封简单的邮件
这个例子展示了如何从机器发送一封简单的邮件。假定localhost已经连接至网络并且有能力发送一封邮件。确认mail.jar包和activation.jar包已经添加进CLASSPATH变量中。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%
String result;
// 收件人的电子邮件
String to = "abcd@gmail.com";
// 发件人的电子邮件
String from = "mcmohd@gmail.com";
// 假设是从本地主机发送电子邮件
String host = "localhost";
// 获取系统属性对象
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
// 获取默认的Session对象。
Session mailSession = Session.getDefaultInstance(properties);
try{
// 创建一个默认的MimeMessage对象。
MimeMessage message = new MimeMessage(mailSession);
// 设置 From: 头部的header字段
message.setFrom(new InternetAddress(from));
// 设置 To: 头部的header字段
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// 设置 Subject: header字段
message.setSubject("This is the Subject Line!");
// 现在设置的实际消息
message.setText("This is actual message");
// 发送消息
Transport.send(message);
result = "Sent message successfully....";
}catch (MessagingException mex) {
mex.printStackTrace();
result = "Error: unable to send message....";
}
%>
<html>
<head>
<title>Send Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align="center">
<%
out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>
访问http://localhost:8080/SendEmail.jsp,它将发送一封邮件给abcd@gmail.com 并显示如下结果:
Send Email using JSP
Result: Sent message successfully....
如果想把邮件发送给多人,可以使用这些方法来指明多个邮箱地址:
void addRecipients(Message.RecipientType type,
Address[] addresses)
throws MessagingException
参数的描述:
- type:这个值将会被设置成 TO(收件人)、CC 或 BCC。CC 表示 Carbon Copy(抄送),BCC 表示 Blind Carbon Copy(密件抄送),栗子程序中使用的是 TO。
- addresses:这是一个邮箱地址的数组,当指定邮箱地址时需要使用InternetAddress()方法。
发送一封HTML邮件
假定localhost已经连接至网络并且有能力发送邮件。确认mail.jar包和activation.jar包已经添加进CLASSPATH变量中。
在这个例子中使用了setContent()方法,将"text/html"作为第二个参数传给它,用来表明消息中包含了HTML内容:
<%@ page import="java.io.*,java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%
String result;
// 收件人的电子邮件
String to = "abcd@gmail.com";
// 发件人的电子邮件
String from = "mcmohd@gmail.com";
// 假设你是从本地主机发送电子邮件
String host = "localhost";
// 获取系统属性对象
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
// 获取默认的Session对象。
Session mailSession = Session.getDefaultInstance(properties);
try{
// 创建一个默认的MimeMessage对象。
MimeMessage message = new MimeMessage(mailSession);
// 设置 From: 头部的header字段
message.setFrom(new InternetAddress(from));
// 设置 To: 头部的header字段
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// 设置 Subject: header字段
message.setSubject("This is the Subject Line!");
// 设置 HTML消息
message.setContent("<h1>This is actual message</h1>",
"text/html" );
// 发送消息
Transport.send(message);
result = "Sent message successfully....";
}catch (MessagingException mex) {
mex.printStackTrace();
result = "Error: unable to send message....";
}
%>
<html>
<head>
<title>Send HTML Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align="center">
<%
out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>
在邮件中包含附件
发送一封包含附件的邮件:
<%@ page import="java.io.*,java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%
String result;
// 收件人的电子邮件
String to = "abcd@gmail.com";
// 发件人的电子邮件
String from = "mcmohd@gmail.com";
// 假设你是从本地主机发送电子邮件
String host = "localhost";
// 获取系统属性对象
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
// 获取默认的Session对象。
Session mailSession = Session.getDefaultInstance(properties);
try{
// 创建一个默认的MimeMessage对象。
MimeMessage message = new MimeMessage(mailSession);
// 设置 From: 头部的header字段
message.setFrom(new InternetAddress(from));
// 设置 To: 头部的header字段
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// 设置 Subject: header字段
message.setSubject("This is the Subject Line!");
// 创建消息部分
BodyPart messageBodyPart = new MimeBodyPart();
// 填充消息
messageBodyPart.setText("This is message body");
// 创建多媒体消息
Multipart multipart = new MimeMultipart();
// 设置文本消息部分
multipart.addBodyPart(messageBodyPart);
// 附件部分
messageBodyPart = new MimeBodyPart();
String filename = "file.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
// 发送完整消息
message.setContent(multipart );
// 发送消息
Transport.send(message);
String title = "Send Email";
result = "Sent message successfully....";
}catch (MessagingException mex) {
mex.printStackTrace();
result = "Error: unable to send message....";
}
%>
<html>
<head>
<title>Send Attachement Email using JSP</title>
</head>
<body>
<center>
<h1>Send Attachement Email using JSP</h1>
</center>
<p align="center">
<%
out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>
用户认证部分
如果邮件服务器需要用户名和密码来进行用户认证的话,可以像这样来设置:
properties.setProperty("mail.user", "myuser");
properties.setProperty("mail.password", "mypwd");
使用表单发送邮件
使用HTML表单接收一封邮件,并通过request对象获取所有邮件信息:
String to = request.getParameter("to");
String from = request.getParameter("from");
String subject = request.getParameter("subject");
String messageText = request.getParameter("body");
获取以上信息后,就可以使用前面提到的例子来发送邮件了。
jsp的全部基础内容结束啦!
如果对你有帮助的话不要忘记一键三连噢~
谢谢鸭~
初次编写于2021/2/23日;