Polskie znaki jsp

Odpowiedz Nowy wątek
2017-02-04 13:12
Nieposkromiony
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

Pozostało 580 znaków

2017-02-04 13:53
0

Ogólnie to w wielu miejscach możesz miec cos nie tak
tu jest opis::
http://stackoverflow.com/ques[...]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.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 1x, ostatnio: jarekr000000, 2017-02-04 13:54

Pozostało 580 znaków

2017-02-04 18:01
0

Kodowanie znaków UTF-8 JSP Tomcat Spring 4

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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