上回说:jsp文件:https://www.jianshu.com/p/c758b2c35d1b
error.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>error</title>
</head>
<body>
<% String msg = (String)request.getSession().getAttribute("info"); %>
<h2><%= msg %></h2>
<h3>去注册<span><a href="register.jsp">register</a></span></h3>
</body>
</html>
Leave_message.jsp
<%@page import="wg.User" %>
<%@ 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>
<% User user = (User)request.getSession().getAttribute("user");
if(user == null){
request.getSession().setAttribute("info", "非法访问!");
response.sendRedirect("error.jsp");
return ;
}
%>
<body>
<h2>Please write your message!</h2>
<form action="LeaveMessageServlet" method="post" >
<table style="border: 1">
<tr>
<td>message title</td>
<td><input type="text" name="title" /></td>
</tr>
<tr>
<td>message content</td>
<td><textarea name="message" rows="5" cols="35"></textarea></td>
</tr>
</table>
<input type="submit" value="submit"/>
<input type="reset" value="reset" />
</form>
<a href="main.jsp">Go 主页</a>
</body>
</html>
Login.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-81">
<title>Login Interface</title>
</head>
<body>
<h5>welcome to you!</h5>
<h2>Login Please</h2>
<form action="Loginservlet" method="POST">
<table>
<tr>
<td>Username</td>
<td><input name="username" type="text" size="20" /></td>
</tr>
<tr>
<td>Password</td>
<td><input name="password" type="password" size="20" /></td>
</tr>
</table>
<input type="submit" value="submit">
<input type="reset" value="reset">
</form>
<a href="register.jsp">I want to register</a>
</body>
</html>
main.jsp
<%@page import="wg.Msg_Board"%>
<%@page import="wg.Login"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.ArrayList"%>
<%@page import="wg.User"%>
<%@page import="wg.Mesage" %>
<%@page import="wg.Login" %>
<%@ 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>
<% User user = (User)request.getSession().getAttribute("user");
if(user == null){
request.getSession().setAttribute("info", "非法访问!");
response.sendRedirect("error.jsp");
return ;
}else{
//遍历留言表,采用session存起来
Msg_Board msg_Board = new Msg_Board();
ArrayList<Mesage> all_msg = msg_Board.getMessage();
session.setAttribute("all_msg", all_msg);
}
%>
<h2>这是主页</h2>
<h2>留言板总览</h2>
<table style="border: 1;">
<tr>
<th>留言人姓名</th>
<th>留言时间</th>
<th>留言标题</th>
<th>留言内容</th>
</tr>
<%
ArrayList<Mesage> al = (ArrayList<Mesage>)request.getSession().getAttribute("all_msg");
Login temp = new Login();
if (al != null) {
Iterator it = al.iterator();
while (it.hasNext()) {
Mesage ms = (Mesage) it.next();
String username = temp.getUserName(ms.getUser_id());
%>
<tr>
<td><%= username %></td>
<td><%= ms.getTime()%></td>
<td><%= ms.getTitle() %></td>
<td><%= ms.getContent() %></td>
</tr>
<%
}
}
%>
</table>
<h4>去留言<a href="Leave_message.jsp">Go</a></h4>
<h4>退出<a href="Signout.jsp">Go</a></h4>
</body>
</html>
register.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>
<h2>注册界面</h2>
<h5>welcome to you!</h5>
<h2>Register Please</h2>
<form action="Registerservlet" method="POST">
<table>
<tr>
<td>Username</td>
<td><input name="username" type="text" size="20" /></td>
</tr>
<tr>
<td>Password</td>
<td><input name="password" type="password" size="20" /></td>
</tr>
</table>
<input type="submit" value="submit">
<input type="reset" value="reset">
</form>
<a href="Login.jsp">已有账号去登陆</a>
</body>
</html>
result.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>
<% String msg = (String)request.getSession().getAttribute("info");
String wg_page = (String)request.getSession().getAttribute("page");%>
<h2><%= msg %></h2>
<h4>跳转:<a href="<%= wg_page %>">Go</a></h4>
</body>
</html>
Signout.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>
<h2>已退出</h2>
<%
session.invalidate() ; //销毁session
//2秒后跳转
response.setHeader("refresh","2 ; url= Login.jsp") ;
%>
</body>
</html>
success.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>
<h2>注册成功</h2>
<h4>去登陆<span><a href="Login.jsp">login</a></span></h4>
</body>
</html>
然后我再次(原来弄博客也是)遇见一个令人头疼的问题。
存储到数据库的中文数据乱码问题:
可以参考这篇
https://blog.csdn.net/cxy782255346/article/details/41173577
找到my.ini参考:
https://jingyan.baidu.com/article/7e4409531f75292fc0e2efe7.html
重启mysql
在这之上我还加入了
my.ini设置了character-set-server
最后附上改后的数据库配置
进入数据库中敲入:
show variables like '%char%';
还遇见当eclipse不自动引入包名时,只好手动引用了,如下:(或者手敲)
到此制作完毕
这其中还有很多知识积累也记录下来吧:
创造一个数据库连接对象(Connection对象,代表与数据源进行的唯一会话。)。
创建编译语句对象(Statement对象,建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。)。
创建预编译语句对象(PreparedStatement对象, 实例包含已编译的 SQL 语句。这就是使语句“准备好”)。
创建结果集对象(ResultSet对象, 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等.)
ps:结果集对象在oracle中如果是查询会返回一个resultset,但是当插入,删除和更新值的时候返回的是被影响的行数,所以这时候需要用int类型来接收这个值。
response.getWriter().append("Served at: ").append(request.getRequestURL().toString());
String requestUrl = request.getRequestURL().toString();//得到请求的URL地址
String requestUri = request.getRequestURI();//得到请求的资源
String queryString = request.getQueryString();//得到请求的URL地址中附带的参数
String remoteAddr = request.getRemoteAddr();//得到来访者的IP地址
String remoteHost = request.getRemoteHost();//返回发出请求的客户机的完整主机名。
int remotePort = request.getRemotePort();//返回客户机所使用的网络端口号
response.setCharacterEncoding("UTF-8");//设置将字符以"UTF-8"编码输出到客户端浏览器
//通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
response.setHeader("content-type", "text/html;charset=UTF-8");
PrintWriter out = response.getWriter();//这是servlet的输出流的意思,然后在页面直接可以显示和解析
out.write("获取到的客户机信息如下:");
out.write("<hr/>");
out.write("请求的URL地址:"+requestUrl);
out.write("<br/>");
out.write("请求的资源:"+requestUri);
out.write("<br/>");
out.write("请求的URL地址中附带的参数:"+queryString);
out.write("<br/>");
out.write("来访者的IP地址:"+remoteAddr);
out.write("<br/>");
out.write("来访者的主机名:"+remoteHost);
out.write("<br/>");
out.write("使用的端口号:"+remotePort);
关于重定向丢失请求域的参数问题