Servlet弹窗提示实现

来源:互联网 发布:linux svn ignore 编辑:程序博客网 时间:2024/06/11 16:53

Html弹窗及jsp+servlet弹窗实现

一、效果截图及演示

图片已经挂了

二、一般网页的弹窗

html中加入javascriptalert(“文本“)onfirm(“文本“)方法弹窗,如<script>alert(“你好,欢迎光临“);</script>(这也就是进入本文弹窗效果)

下面详细说明javascript中不同弹窗方法用法

1、 alert(“文本“) 警示窗

主要是提示用户一些操作信息,当警告框出现后,用户需要点击确定按钮才能继续进行操作。

警示窗也是最常用的弹窗。

2、 confirm(“文本“) 确认框

主要用于让用去确认信息或选择某种操作。当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。

如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为false。对应的,我们可以根据返回值进行相应的操作。如下图中的“退出系统”是,当用户点击“确认”,则退出系统,当点击“取消”时,则停留在当前页。

      确认框也是经常使用的弹窗。

3、 prompt(“文本“,”默认值“)提示框

提示框经常用于提示用户进入某页钱输入必要的值。当提示框出现后,默认显示默认值,当用户输入值或保持默认值,单击确认或取消后才能继续操作。

当用户有输入值或保持默认值,单击确认,则返回值为框内的值,如果单击取消, 则返回null

             提示框不常用。

三、JSP+servlet弹窗的实现

1、问题的提出——servlet不支持直接执行javascript代码

      在用jsp+servlet做系统时,我们的底层操作实现大多在servlet中实现,所以很多相关操作信息都是在servlet中产生。例如登录操作,一般是jsp提供界面并提交用户输入的表单到处理登录验证的servlet中,而登录验证成功,用户信息正误等信息都是在servlet中产生,servlet并不能直接在out.println()中执行javascript代码,所以直接弹窗是不可能的。

2、问题的原因——servletjavascript展现层次不一样

      Servlet是服务器端执行,而javascript是客户端脚本,所以不可能在servlet中实现javascript代码运行。

4、 解决办法——servlet通过session将消息传递到jsp

1)servlet中将需要展现的消息保存到指定session中,如

[java]
session.setAttribute(“loginMsg”, ““);
[/java]

2)jsp页面获取消息,如在login.jsp中获取登录相关信息

[java]
String loginMsg = (String)session.getAttribute(“loginMsg”);
[/java]

获取的session为对应的servlet中设置的session。为了不产生干扰,建议在不同的servlet中设置不同session名,来传递不同的消息。

3) 在需要弹窗的页面的最后面展现弹窗消息,如在login.jsp的最后面

[java]
if(loginMsg != null) {
out.println(loginMsg);
session.removeAttribute(“loginMsg”);
}
[/java]

关于为什么要在页面的最后面展现弹窗消息,请自己动手试试在不同位置展现的效果,最后的结论是,最后展现可以保持整个页面都加载的情况下弹窗,而如果是在其他位置,会导致弹窗的背景为空白(也就是页面没加载),效果自测吧!

四、JSP+servlet弹窗实现的实例代码

1、登录页面(login.jsp

[html]
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%
String loginMsg = (String)session.getAttribute("loginMsg"); // 第二步:获取servlet中存入session的消息
%>

用户名:密码:

<%
if(loginMsg != null) { //第三步:在需要弹窗的页面的尾部展现消息
out.print(loginMsg);
session.removeAttribute("loginMsg");
}
%>

[/html]

2、登录信息处理的servletlogin.java

[java]
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setCharacterEncoding(“gb2312″);
request.setCharacterEncoding(“gb2312″);
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();

String name = request.getParameter(“name”);
String pass = request.getParameter(“pass”);
String base = “http://localhost:8080/xxx/”;

if(name == null || “”.equals(name)) {
session.setAttribute(“loginMsg”, ““);
response.sendRedirect(base+”login.jsp”); //第一步:将需要显示的消息javascript代码保存到指定的session中
} else if(pass == null || “”.equals(pass)) {
session.setAttribute(“loginMsg”, ““);
response.sendRedirect(base+”login.jsp”);
}
//………………..其他操作
}
[/java]

0 0
原创粉丝点击