Polskie znaki jsp

0

Hej, mam problem prawdopodobnie z kodowaniem na stronie, próbowałem wielu różnych sposób jednak nic nie pomogło ;/
W bazie również nie wyświetla poprawnie, no ale to raczej oczywiste
plik jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>  
<head>  

<title>Insert title here</title>  
</head>  
<body>  
  
<h1>Add New Employee</h1>  
 <form method="post" action="Dodawanie" enctype="multipart/form-data">
<table>  
 

<td>Miasto:</td><td> <select name="Miasto" >
<option value=" ">Wybierz miasto</option>
<option value="Kraków">Kraków</option>

</select></td>

</td></tr>  
<tr><td colspan="2"><input type="submit" value="Wyślij"/></td></tr>  
</table>  
</form>  
  
  
</body>  
</html>

Klasa javy

 package controller;
 
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/Dodawanie")
public class DodawanieMieszkan extends HttpServlet {
     
    // database connection settings
	  private String dbURL = "jdbc:mysql://localhost:3306/baza";
	    private String dbUser = "root";
	    private String dbPass = "";
     
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	
  
   	 String Miasto = request.getParameter("Miasto");
   	
         
        Connection conn = null; 
        String message = null;  
         
        try {
            // connects to the database
        	DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            conn = DriverManager.getConnection(dbURL, dbUser, dbPass);
 
            // constructs SQL statement
            String sql = "INSERT INTO Users (Miasto) values(?)";
            PreparedStatement statement = conn.prepareStatement(sql);
            statement.setString(5, Miasto);
            int row = statement.executeUpdate();
            if (row > 0) {
                message = "gj";
                System.out.println(Miasto);             //Wypisuje z ?? 
                System.out.println("Kraków");        // Wypisuje normalnie
            }
        } catch (SQLException ex) {
            message = "ERROR: " + ex.getMessage();
            ex.printStackTrace();
        } finally {
            if (conn != null) {
                // closes the database connection
                try {
                    conn.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            request.setAttribute("Message", message);
             
            getServletContext().getRequestDispatcher("/Message.jsp").forward(request, response);
        }
    }
}

Dzięki za pomoc

1

Ogólnie to w wielu miejscach możesz miec cos nie tak
tu jest opis::
http://stackoverflow.com/questions/138948/how-to-get-utf-8-working-in-java-webapps

Tobie najprawdopodobniej potrzeba Charset-Filter

Btw. da się to skrócić do jednej linjki
request.setCharacterEncoding("UTF-8"); którą musisz na poczatku servleta (doPost) wywołac , ale jest to **nieenterprisy **rozwiązanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1