<分区>
我有一个要求,我需要保存一个变量的值。我的问题是我需要从网页向 servlet 发送一个值,其中变量的值第一次为 null 但是当我从选择框中选择一个值时,它会转到 servlet 并且它与该值一起使用但我的问题在这里,我需要在选择值后重新访问页面。所以现在当我这样做时,值再次变为零并且操作没有发生,我可以在从选择中选择一些值后保存变量的值吗??
这是我的代码..
<body>
Select Country:
<select id="country">
<option>Select Country</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="button" value="Reload page" onclick="reloadPage()">
</body>
<script>
function reloadPage(){
location.reload();
}
</script>
<script>
$(document).ready(function() {
$('#country').change(function(event) {
var $country=$("select#country").val();
$.get('JsonServlet',{countryname:$country},function(responseJson) {
var $select = $('#states');
$select.find('option').remove();
$.each(responseJson, function(key, value) {
$('<option>').val(key).text(value).appendTo($select);
});
});
});
});
</script>
这是我的servlet
public class JsonServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String value = request.getParameter("countryname");
System.out.println("comes from ajax" + value);
JsonGenerator generator = new JsonGenerator();
Entry entry = null;
if (value != null) {
HttpSession session = request.getSession();
session.setAttribute("value", value);
entry = generator.aMethod2Json(value);
Gson g = new Gson();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(g.toJson(entry));
} else {
entry = generator.aMethod2Json("1");
Gson g = new Gson();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(g.toJson(entry));
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>