JSP程序应该是每本Java Web入门书籍的首要介绍的内容,本文参考指导书中的示例,记录JSP的基本知识。
程序功能
编写一个简单的留言簿,用户登录后可以在线留言,留言提交后可以显示留言内容。用户登录失败,会提示错误信息,并重新跳转到登录界面。
涉及的JSP技术
1、JSP表达式:<%= 表达式 %>
2、JSP代码片段:<% Java代码或脚本代码%>
3、请求转发表示<jsp:forward>
4、request对象:获取客户端HTTP请求中的各项参数;
5、response对象:响应请求,向客户端输出信息;
6、Application对象:保存所有应用程序中的共有数据,本文中拿来保存留言。
项目开发过程
准备创建四个JSP文件:login.jsp,用于用户登录;deal.jsp用于判断是否合法用户;error.jsp显示非法用户信息;MessageBoard.jsp用于显示和提交留言。
新建JSP项目,命名为MyMessageBoard,如下图所示:
新建login.jsp文件,并编写简单的HTML用于输入用户名和密码。
<div align="center">用户登录<br>
<hr width="30%" size="3" style="background-color:rgb(64,0,0);">
<br>
<form action="deal.jsp" method="post" name="login">
<p>用户名:<input type="text" size="15" name="userName"/></p>
<p>密码:<input type="password" size="15" name="userPassword"/><br></p>
<p><input type="submit" value="确定" name="submit"/></p>
</form>
</div>
接着新建deal.jsp,用于判断用户名和密码是否正确,这里因为没涉及数据库,所以就先写死一个用户名和密码,如何用户名和密码正确就跳转到留言簿页面,如果不正确就跳转到报错界面。
<body>
<%
String userName=request.getParameter("userName");
String userPassword=request.getParameter("userPassword");
if(userName.equals("gc_2299") && userPassword.equals("123456"))
{
request.getRequestDispatcher("messageboard.jsp").forward(request,response);
}
else
{
response.sendRedirect("error.jsp");
}
%>
</body>
然后新建error.jsp,用于显示用户名密码错误信息,然后定时跳转到登录页面。
response那句代码可以实现定时跳转。
<title>用户名密码错误</title>
</head>
<body>
你输入的用户名或密码有误,2秒后将跳转回登录页面!
<% response.setHeader("refresh", "2;URL=login.jsp");%>
</body>
最后创建留言簿页面,由于水平有限,就弄了一个特别简陋的页面。
JSP代码逻辑如下所示,最上方显示当前用户和IP(直接从request中取的,每次刷新页面值就变成null了),在application中存每次的留言(就是一直拼字符串),最下方是写留言的地方,写完后提交给当前页面自己处理。
<div>
<%
String userName=request.getParameter("userName");
String userIP=request.getRemoteAddr();
String msg=request.getParameter("msg");
String allMsgs="";
if(msg!=null)
{
allMsgs=(String)application.getAttribute("messages");
if(allMsgs==null)
{
allMsgs=msg;
}
else
{
allMsgs+="<br>"+msg;
}
application.setAttribute("messages", allMsgs);
}
%>
当前用户:<%=userName %>;IP:<%=userIP %>
</div>
<div>
已有留言:<br>
<%=allMsgs %>
</div>
<div>
请输入留言:
<form action="messageboard.jsp" method="post" name="mb">
<input type="text" name="msg">
<p><input type="submit" value="留言" name="submit"/></p>
</form>
</div>
下面是登录成功的效果。
下面是输了很多次之后的效果,application生存期很长,我提交的内容一直都在里面留着,刷新了页面也没有丢。
本文就到这里了,上面的代码主要是为了示意功能,里面的问题很多,就不去完善了。后续会接着写java bean 和servlet的文章,也会抽时间接着学习swing。
参考文章:
[1]Java Web设计使用教程
[2]Java Web从入门到精通