Java Servlet与JSP之间传值
最近初学jsp,一直困扰jsp和java之间怎么互传变量,下面是我最近的总结
JSP传值到Java Servlet
- jsp中可以通过form表单,监控一个按钮,利用ajax进行传值到servlet
将jsp文本框数据echoID传递到echoServlet代码如下
<script type="text/javascript">
$(function() {
$("#button").click(function() { //监控按钮button
var data = $("#form").serialize();
$.ajax({
type : "post",
url : "echoServlet?method = Echo",
data : data,
dataType : "text",
success : function(msg) {
//
}
});
});
})
</script>
<form id = "form" class = "form form-horizontal" method = "post">
<div class = "row cl">
<label class = "form-label col-5"></label>
<div class = "formControls col-5">
<input id = "" name = "echoID" type = "text" class = "input-text size-L" style = "width : 200px;">
</div>
</div>
<div class = "row">
<div class = "formControls col-8 col-offset-5">
<input id = "button" type = "button" class = "btn btn-success radius size-L" value = "button;">
</div>
</div>
</form>
- 上述代码实现了将数据从jsp传递到servlet,现在需要从servlet获取jsp传递过来的变量echoID
通过request.getParameter(“varName”)来获取jsp传递过来的变量
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if(method.equalsIgnoreCase("Echo")) {
String echo = request.getParameter("echoID");
}
}
Java Servlet传值到JSP
- 从servlet中传递值到jsp中,利用servlet中的ServletContext这个web全局上下文来共享数据,servlet中的ServletContext()可以获得一个ServletContext对象,利用这个对象的getAttribute()/setAttribute()方法可以在整个web里共享数据
getServletContext().setAttribute(“id”, value);
如将echoID从echoServlet中传递到echo.jsp
getServletContext().setAttribute("echo", echoID);
- 而jsp中只需要通过<%=application.getAttribute(“variousName”)%>即可获取servlet传递的值
<%=application.getAttribute("echo")%>
- ServletContext对象的setAttribute()方法也可以用于从jsp传值到servlet中,具体方法为
<%application.setAttribute("id", object);%>
- 但是setAttribute()方法目前我只知道如何传递定值,第二个参数为Object,传递变量可能需要将变量封装为一个Object传递,具体方法未实践,还望多多指教