I am working in Netbeans IDE and i have wrote JS-code for sending HTTP Request to server:
var idFilterJS;
var isIE;
var eventsTable;
var req;
function applyFilter(){
idFilterJS = getRadioValue();
var url = "http://applyfilter?action=applyfilterXML&id=" + idFilterJS;
req = initRequest();
req.open("GET", url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.onreadystatechange = applyFilterCallBack;
req.send(null);
}
function getRadioValue() {
var inputs = document.getElementsByName("filter");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].checked) {
return inputs[i].value
}
}
}
function initRequest(){
if (window.XMLHttpRequest) {
if (navigator.userAgent.indexOf('MSIE') != -1){
isIE = true;
}
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
isIE = true;
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
The code above, I invoke from .jsp:
<div id="filters-list">
<form name="applyfilter" action="applyfilter">
<fieldset>
<legend>Filters</legend>
<%
for (int i = 0; i < userFilters.size(); i++) {
%>
<input type="radio" name="filter"
value="<%=userFilters.get(i).getId()%>"><%=userFilters.get(i).getName()%>
<br/>
<%
}
%>
<button onclick="applyFilter();">Apply</button>
<!--<button onclick="deleteFilter();">Delete filter</button>-->
</fieldset>
</form>
</div>
This is servlet:
public class ApplyFilterServlet extends HttpServlet {
private ServletContext context;
private List<EventTransfer> eventsTransfer = null;
private HttpSession session = null;
@Override
public void init() throws ServletException {
this.context = getServletContext();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
session = request.getSession();
String action = request.getParameter("action");
Integer targetId = null;
try {
targetId = Integer.parseInt(request.getParameter("id"));
}
catch (NumberFormatException e){
context.getRequestDispatcher("/error.jsp").forward(request, response);
}
StringBuffer stringBuffer = new StringBuffer();
}
}
And web.xml for mapping:
<servlet>
<servlet-name>ApplyFilterServlet</servlet-name>
<servlet-class>controller.ApplyFilterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ApplyFilterServlet</servlet-name>
<url-pattern>/applyfilter</url-pattern>
</servlet-mapping>
Next, I had a breakpoint in ApplyFilterServlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
session = request.getSession();
String action = request.getParameter("action");
}
So, "request.getParameter("action");
" returns null. Why?