html500错误 java,Ajax + Servlet Error 500--Internal Server Error java.lang.NullPointerException

this is my first question and i wouldn't ask if i hadn't spent a long time trying to look for an answer in here. So here it goes.

I'm trying to make a simple CRUD application because i want to learn some basic ajax + servlets + java web development, the problem i have has probably got to do with the response, i have no idea of how to handle it so, the sql insert is done but when it comes back to the application it goes back to the servlet to give me a 500 error code.

So, here are my codes and some photos, i hope you can help me! Thanks.

AJAX CODE

//Get XMLHTTP Object

function getXMLHTTPObject() {

var xmlhttpObject = null;

try {

// For Old Microsoft Browsers

xmlhttpObject = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

// For Microsoft IE 6.0+

xmlhttpObject = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e1) {

// No Browser accepts the XMLHTTP Object then false

xmlhttpObject = false;

}

}

if (!xmlhttpObject && typeof XMLHttpRequest != 'undefined') {

// For Mozilla, Opera Browsers

xmlhttpObject = new XMLHttpRequest();

}

// Mandatory Statement returning the ajax object created

return xmlhttpObject;

}

// Change the value of the outputText field

function setAjaxOutput() {

document.getElementById("res").innerHTML = xmlhttpObject.responseText;

}

function handleServerResponse() {

//Poner aqui un print para saber que paso con readyState

if (xmlhttpObject.readyState == 4) {

console.log("ReadyState " +xmlhttpObject.readyState);

if (xmlhttpObject.status == 200) {

setAjaxOutput();

} else {

console.log("ReadyState " +xmlhttpObject.status);

//alert("Error during AJAX call. Please try again");

}

}

}

// Implement business logic

function doAjaxCall() {

xmlhttpObject = getXMLHTTPObject();

if (xmlhttpObject != null) {

var URL = "servlet?action=ingresar&nombre=" + document.getElementById('firstname').value.toString() + "&apellido="+ document.getElementById('lastname').value.toString();

xmlhttpObject.open("POST", URL, true);

xmlhttpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

console.log(xmlhttpObject);

xmlhttpObject.onreadystatechange = handleServerResponse;

xmlhttpObject.send(null);

}

}

SERVLET CODE

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

*

* @author compract

*/

public class servlet extends HttpServlet {

/**

* Processes requests for both HTTP GET and POST

* methods.

*

* @param request servlet request

* @param response servlet response

* @throws ServletException if a servlet-specific error occurs

* @throws IOException if an I/O error occurs

*/

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try {

/* TODO output your page here. You may use following sample code. */

out.println("");

out.println("");

out.println("

");

out.println("

Servlet servlet");

out.println("");

out.println("

");

out.println("

Servlet servlet at " + request.getContextPath() + "

");

out.println("");

out.println("");

} finally {

out.close();

}

}

//

/**

* Handles the HTTP GET 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 POST 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

*/

protected void Mensaje (HttpServletRequest request, HttpServletResponse response) throws IOException

{

PrintWriter out = response.getWriter();

try {

/* TODO output your page here. You may use following sample code. */

out.println("");

out.println("");

out.println("

");

out.println("

Servlet servlet");

out.println("");

out.println("

");

out.println("

El dato se ha insertado correctamente

");

out.println("");

out.println("");

} finally {

out.close();

}

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//processRequest(request, response);

//hizo error porque no habia este parametro

String action = request.getParameter("action");

boolean usuarioregistrado = false;

if (action.equals("ingresar")) {

String nombre = request.getParameter("nombre");

String apellido = request.getParameter("apellido");

Usuario.Usuario u = new Usuario.Usuario();

u.setNombre(nombre);

u.setApellidoPaterno(apellido);

u.registrarUsuario();

usuarioregistrado = true;

// Mensaje(request, response);

}

if (usuarioregistrado) {

response.setContentType("text/plain");

response.setCharacterEncoding("UTF-8");

response.getWriter().write(request.getParameter("nombre"));

}

else {

//nothing to show

response.setStatus(HttpServletResponse.SC_NO_CONTENT);

}

}

/**

* Returns a short description of the servlet.

*

* @return a String containing servlet description

*/

@Override

public String getServletInfo() {

return "Short description";

}//

}

HTML JSP

Document : index

Created on : 8/07/2015, 03:37:12 PM

Author : compract

--%>

Usuarios

Ingrese los datos del nuevo usuario:

Nombre del usuario: Apellido del usuario:RegistrarCancelar Registrar-Ajax

Usuarios

CLASS TO DO DATABASE STUFF

package Usuario;

import java.sql.*;

/**

*

* @author compract

*/

public class Usuario {

String idUsuario;

String nombre;

String apellidoPaterno;

public String getIdUsuario() {

return idUsuario;

}

public void setIdUsuario(String idUsuario) {

this.idUsuario = idUsuario;

}

public String getNombre() {

return nombre;

}

public void setNombre(String nombre) {

this.nombre = nombre;

}

public String getApellidoPaterno() {

return apellidoPaterno;

}

public void setApellidoPaterno(String apellidoPaterno) {

this.apellidoPaterno = apellidoPaterno;

}

public void registrarUsuario()

{

SingletonConectar.singletonConectar sin = SingletonConectar.singletonConectar.getDbCon();

try {

String query = "INSERT INTO USUARIOS(ID_USUARIO, NOMBRE_USUARIO,APELLIDO_USUARIO) VALUES (null, ?,?)";

PreparedStatement preparedStmt = sin.db.conn.prepareStatement(query);

preparedStmt.setString (1, nombre);

preparedStmt.setString (2, apellidoPaterno);

preparedStmt.execute();

} catch (Exception e) {

{

}

}

}

}

WEB XML

servlet

servlet.servlet

servlet

/servlet

30

index.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值