我这是通过jsp登录页面提交给servlet处理请求,然后在这个Jsp页面出现登录成功或失败的提示条该怎么写?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我这是通过jsp登录页面提交给servlet处理请求,然后在这个Jsp页面出现登录成功或失败的提示条该怎么写?相关的知识,希望对你有一定的参考价值。
最好能用代码具体是说一下!
index.jsp<body>
$message
<form action="login" method="post">
用户名:<input type="text" name="username"/>
密码:<input type="password" name="password"/>
<input type="submit" value="提交"/>
</form>
</body>
LoginServlet
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username.equals("aaa") && password.equals("aaa"))
request.setAttribute("message", "成功");
request.getRequestDispatcher("index.jsp").forward(request, response);
else
request.setAttribute("message", "失败");
request.getRequestDispatcher("index.jsp").forward(request, response);
追问
谢谢你的回答~!
参考技术A $(document).ready(function ()$('#login_button').click(function ()
var name=$('#username').val();
var pwd=$('#password').val();
$.ajax(
url:'.....', //后台url地址
type:'post', //数据发送方式
dataType:'json', //接受数据格式
data:‘name=’+name+'&pwd='+pwd, //要传递的数据
success:function(msg)
alert(msg);
//回传函数(这里是函数名)
);
);
);
这是用Jquery ajax的方法
后台的话都差不多,需要用String msg = " " 来存放你判断的登录结果,然后写上
HttpServletResponse res = ServletActionContext.getResponse();
res.setCharacterEncoding("utf-8");
try
res.getWriter().println(msg);
catch (IOException e)
e.printStackTrace();
参考技术B 你的servlet处理完得返回页面,在返回页面之前做一下逻辑判断,成功与失败都可以放到request,jsp页面拿request获取追问
jsp获取以后怎么显示?
追答比如你serlet这样request.setAttribute("message", message);传值,jsp页面是String message=(String)request.getAttribute("message");取值,然后把取出的值。在jsp中就可以显示出来
参考技术C String inputCode = request.getParameter("checkCode");System.out.println(inputCode);
//从session中获取正确的验证码
String rightCode = (String) request.getSession().getAttribute("code");
System.out.println("---"+rightCode);
String name = request.getParameter("username");
String pass = request.getParameter("userpass");
HttpSession session = request.getSession();
UserDTO user = new UserDAO().check(name, pass);
session.setAttribute("username", name);
if(user==null)
request.setAttribute("errMsg","您输入的用户名或密码有错!");
request.getRequestDispatcher("login.jsp").forward(request, response);
else
if(inputCode.equalsIgnoreCase(rightCode))
request.getSession().setAttribute("user",user);
request.setAttribute("m", name);
request.getRequestDispatcher("index.jsp").forward(request, response);
else
request.setAttribute("errMsg","请重新输入验证码");
request.getRequestDispatcher("login.jsp").forward(request,response);
参考技术D 那要看你保存的是什麽类型的数据了,jstl和el相互配合显示。追问
都是字符串!
追答是service调用方法返回的吗。一般返会类型都是集合或对象,你怎麼还弄成字符串了
如何将参数传递给servlet
【中文标题】如何将参数传递给servlet【英文标题】:How to pass parameter to servlet 【发布时间】:2010-09-19 01:04:27 【问题描述】:如何将参数从 JSP 中的页面 useBean 传递到 Java 中的 servlet?我的表单中有一些数据通过提交按钮没有问题,但无法发送其他任何内容。请帮忙?这是我的代码:
<input name = "deleteGameButton" type = "submit" value = "Delete"
onclick = "submitToServlet('DeleteGameServlet');">
这里是对应的javascript:
function submitToServlet(newAction)
document.userGameForm.action = newAction;
我希望 servlet 能够访问 userBean
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
【问题讨论】:
【参考方案1】:你这里有点乱。
onclick() 是 Javascript 并在客户端执行。它没有(直接)方法来更新会话范围的 bean。该 bean 留在服务器端,并在 HTML 页面生成时使用。要将参数传递回 servlet,您需要使用良好的旧表单字段并提交表单。
向表单添加更多字段,在提交之前设置它们的值,然后提交。
在Servlet中调用request.getParameter("name");
附: 使用 STRUTS 自动化这类事情。 :-) Struts 完全符合您的要求:在将参数传递给操作之前,它使用这些参数填充 bean。透明。
【讨论】:
嗨,谢谢。最后我确实在表格中使用了额外的字段。但我认为必须有一些更简单的东西......我想那将是 STRUTS。但它现在可以正常工作,所以我将来会使用 STRUTS,最后期限迫在眉睫。谢谢。【参考方案2】:你好,试试下一个标签:
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/>
<jsp:setProperty name="beanName" property="propertyname" value="value"/>
</jsp:useBean>
更多here
祝你好运!
【讨论】:
此标签将在页面生成期间更新服务器端的 bean。这家伙(显然;很难确定)想要提交一个表单来更新会话中的 bean。 好的,那么 AJAX(或任何推荐的 STRUTS 框架)是解决方案,因为服务器端和客户端之间的通信必须在幕后完成,对吧? 嗨,谢谢... 是的,我需要将参数从 jsp 代码透明地传递到 servlet 的东西。我会尝试使用 STRUTS,谢谢。【参考方案3】:这完全取决于您要做什么。
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
标签将允许您在 jsp 中使用会话的 userBean 属性。如果 session 中没有 userBean 属性,它将创建一个新的(使用 org.project.User 的默认构造函数)并将其放置在 session 中。
然后,当您访问 servlet 时,您可以使用以下命令检索它:
User user = (User)request.getSession().getAttribute("userBean");
【讨论】:
【参考方案4】: getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");
dispatcher.forward (request, response);
【讨论】:
以上是关于我这是通过jsp登录页面提交给servlet处理请求,然后在这个Jsp页面出现登录成功或失败的提示条该怎么写?的主要内容,如果未能解决你的问题,请参考以下文章
jsp中如何实现把一个jsp页面中表单的信息通过servlet处理在,另一个jsp页面中显示??
用servlet和jsp编写用户登录页面,并在返回给客户端的页面上,显示登录时填写的用户名及密码?